[Goodies-commits] r6048 - xfburn/trunk/xfburn
David Mohr
squisher at xfce.org
Mon Nov 10 06:36:10 CET 2008
Author: squisher
Date: 2008-11-10 05:36:10 +0000 (Mon, 10 Nov 2008)
New Revision: 6048
Modified:
xfburn/trunk/xfburn/xfburn-blank-dialog.c
xfburn/trunk/xfburn/xfburn-burn-audio-cd-composition-dialog.c
xfburn/trunk/xfburn/xfburn-burn-data-composition-base-dialog.c
xfburn/trunk/xfburn/xfburn-burn-image-dialog.c
xfburn/trunk/xfburn/xfburn-device-list.c
xfburn/trunk/xfburn/xfburn-device-list.h
xfburn/trunk/xfburn/xfburn-perform-burn.c
Log:
* Forget the drive info when releasing the drive
* Get debug messages from the beginning on when DEBUG_LIBBURN is set
Modified: xfburn/trunk/xfburn/xfburn-blank-dialog.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-blank-dialog.c 2008-11-10 04:01:56 UTC (rev 6047)
+++ xfburn/trunk/xfburn/xfburn-blank-dialog.c 2008-11-10 05:36:10 UTC (rev 6048)
@@ -29,6 +29,7 @@
#include "xfburn-utils.h"
#include "xfburn-progress-dialog.h"
#include "xfburn-device-box.h"
+#include "xfburn-device-list.h"
#include "xfburn-stock.h"
#include "xfburn-hal-manager.h"
#include "xfburn-main.h"
@@ -455,7 +456,7 @@
xfburn_progress_dialog_burning_failed (XFBURN_PROGRESS_DIALOG (params->dialog_progress), _("Unable to grab the drive."));
} else {
thread_blank_perform_blank (params, drive_info);
- burn_drive_release (drive_info->drive, params->eject ? 1 : 0);
+ xfburn_device_release (drive_info, params->eject);
}
g_free (params);
Modified: xfburn/trunk/xfburn/xfburn-burn-audio-cd-composition-dialog.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-burn-audio-cd-composition-dialog.c 2008-11-10 04:01:56 UTC (rev 6047)
+++ xfburn/trunk/xfburn/xfburn-burn-audio-cd-composition-dialog.c 2008-11-10 05:36:10 UTC (rev 6048)
@@ -557,7 +557,7 @@
xfburn_progress_dialog_burning_failed (XFBURN_PROGRESS_DIALOG (dialog_progress), _("Unable to grab the drive."));
} else {
thread_burn_prep_and_burn (params, drive_info->drive, disc, session, n_tracks, track_sectors, tracks, srcs);
- burn_drive_release (drive_info->drive, params->eject ? 1 : 0);
+ xfburn_device_release (drive_info, params->eject);
}
}
Modified: xfburn/trunk/xfburn/xfburn-burn-data-composition-base-dialog.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-burn-data-composition-base-dialog.c 2008-11-10 04:01:56 UTC (rev 6047)
+++ xfburn/trunk/xfburn/xfburn-burn-data-composition-base-dialog.c 2008-11-10 05:36:10 UTC (rev 6048)
@@ -612,7 +612,7 @@
xfburn_progress_dialog_burning_failed (XFBURN_PROGRESS_DIALOG (dialog_progress), _("Unable to grab the drive."));
} else {
thread_burn_prep_and_burn (params, drive_info->drive, disc, session, track);
- burn_drive_release (drive_info->drive, params->eject ? 1 : 0);
+ xfburn_device_release (drive_info, params->eject);
}
burn_track_free (track);
Modified: xfburn/trunk/xfburn/xfburn-burn-image-dialog.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-burn-image-dialog.c 2008-11-10 04:01:56 UTC (rev 6047)
+++ xfburn/trunk/xfburn/xfburn-burn-image-dialog.c 2008-11-10 05:36:10 UTC (rev 6048)
@@ -357,7 +357,7 @@
burn_write_opts_free (burn_options);
cleanup:
- burn_drive_release (drive, params->eject ? 1 : 0);
+ xfburn_device_release (drive_info, params->eject);
end:
burn_track_free (track);
burn_session_free (session);
@@ -546,7 +546,7 @@
burn_write_opts_free (burn_options);
}
- burn_drive_release (drive_info->drive, 0);
+ xfburn_device_release (drive_info, 0);
priv->params = params;
Modified: xfburn/trunk/xfburn/xfburn-device-list.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-device-list.c 2008-11-10 04:01:56 UTC (rev 6047)
+++ xfburn/trunk/xfburn/xfburn-device-list.c 2008-11-10 05:36:10 UTC (rev 6048)
@@ -43,6 +43,7 @@
static int profile_no = 0;
static char profile_name[80];
static int is_erasable = 0;
+static char * libburn_msg_prefix = "libburn-";
#define CAN_BURN_CONDITION device->cdr || device->cdrw || device->dvdr || device->dvdram
#define DEVICE_INFO_PRINTF "%s can burn: %d [cdr: %d, cdrw: %d, dvdr: %d, dvdram: %d]", device->name, CAN_BURN_CONDITION, device->cdr, device->cdrw, device->dvdr, device->dvdram
@@ -193,7 +194,7 @@
ret = burn_drive_get_adr (&(drives[i]), device->addr);
if (ret <= 0)
g_error ("Unable to get drive %s address (ret=%d). Please report this problem to libburn-hackers at pykix.org", device->name, ret);
- DBG ("device->addr = %s", device->addr);
+ //DBG ("device->addr = %s", device->addr);
if (can_burn) {
devices = g_list_append (devices, device);
@@ -252,7 +253,7 @@
#endif
if (G_UNLIKELY (device == NULL)) {
- DBG ("Hmm, why can we refresh when there is no drive?");
+ g_warning ("Hmm, why can we refresh when there is no drive?");
return FALSE;
}
@@ -286,7 +287,7 @@
if (get_speed_info)
refresh_speed_list (device, drive_info);
- burn_drive_release (drive_info->drive, 0);
+ xfburn_device_release (drive_info, 0);
}
return ret;
@@ -300,6 +301,8 @@
#endif
int n_drives;
+ xfburn_device_list_console_messages ();
+
if (devices) {
g_list_foreach (devices, (GFunc) device_content_free, NULL);
g_list_free (devices);
@@ -337,6 +340,7 @@
* the drive might be busy detecting the disc */
for (i=0; i<max_checks; i++) {
ret = burn_drive_scan_and_grab (drive_info, drive_addr, 0);
+ //DBG ("grab (%s)-> %d", drive_addr, ret);
if (ret > 0)
break;
else if (i < (max_checks-1))
@@ -351,6 +355,32 @@
return TRUE;
}
+gboolean
+xfburn_device_release (struct burn_drive_info *drive_info, gboolean eject)
+{
+ int ret;
+
+ burn_drive_release (drive_info->drive, eject);
+
+ ret = burn_drive_info_forget (drive_info, 0);
+
+ if (G_LIKELY (ret == 1))
+ return TRUE;
+ else if (ret == 2) {
+ DBG ("drive_info already forgotten");
+ return TRUE;
+ } else if (ret == 0) {
+ DBG ("could not forget drive_info");
+ return FALSE;
+ } else if (ret < 0) {
+ DBG ("some other failure while forgetting drive_info");
+ return FALSE;
+ }
+
+ /* we should never reach this */
+ return FALSE;
+}
+
void
xfburn_device_free (XfburnDevice * device)
{
@@ -387,3 +417,36 @@
devices = NULL;
}
+void
+xfburn_device_list_capture_messages ()
+{
+ int ret;
+
+#ifdef DEBUG_LIBBURN
+ ret = burn_msgs_set_severities ("NEVER", "DEBUG", libburn_msg_prefix);
+#else
+ ret = burn_msgs_set_severities ("ALL", "NEVER", libburn_msg_prefix);
+#endif
+
+ if (ret <= 0)
+ g_warning ("Failed to set libburn message severities, burn errors might not get detected");
+}
+
+void
+xfburn_device_list_console_messages ()
+{
+ int ret;
+
+#ifdef DEBUG_LIBBURN
+ ret = burn_msgs_set_severities ("NEVER", "DEBUG", libburn_msg_prefix);
+#else
+ ret = burn_msgs_set_severities ("NEVER", "FATAL", libburn_msg_prefix);
+#endif
+
+ if (ret <= 0)
+ g_warning ("Failed to set libburn message severities");
+
+}
+
+
+
Modified: xfburn/trunk/xfburn/xfburn-device-list.h
===================================================================
--- xfburn/trunk/xfburn/xfburn-device-list.h 2008-11-10 04:01:56 UTC (rev 6047)
+++ xfburn/trunk/xfburn/xfburn-device-list.h 2008-11-10 05:36:10 UTC (rev 6048)
@@ -88,6 +88,10 @@
gboolean xfburn_device_refresh_info (XfburnDevice * device, gboolean get_speed_info);
gboolean xfburn_device_grab (XfburnDevice * device, struct burn_drive_info **drive_info);
+gboolean xfburn_device_release (struct burn_drive_info *drive_info, gboolean eject);
void xfburn_device_free (XfburnDevice * device);
+void xfburn_device_list_capture_messages ();
+void xfburn_device_list_console_messages ();
+
#endif /* __XFBURN_DEVICE_LIST_H__ */
Modified: xfburn/trunk/xfburn/xfburn-perform-burn.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-perform-burn.c 2008-11-10 04:01:56 UTC (rev 6047)
+++ xfburn/trunk/xfburn/xfburn-perform-burn.c 2008-11-10 05:36:10 UTC (rev 6048)
@@ -64,7 +64,7 @@
char severity[80];
const char *final_status_text;
XfburnProgressDialogStatus final_status;
- const char *final_message;
+ char *final_message;
gdouble percent = 0.0;
int dbg_no;
int total_sectors, burned_sectors;
@@ -112,16 +112,9 @@
return;
}
- /* set us up to receive fatal errors */
-#ifdef DEBUG_LIBBURN
- ret = burn_msgs_set_severities ("NEVER", "DEBUG", "libburn");
-#else
- ret = burn_msgs_set_severities ("ALL", "NEVER", "libburn");
-#endif
+ /* set us up to receive libburn errors */
+ xfburn_device_list_capture_messages ();
- if (ret <= 0)
- g_warning ("Failed to set libburn message severities, burn errors might not get detected!");
-
/* Install the default libburn abort signal handler.
* Hopefully this means the drive won't be left in a burning state if we catch a signal */
burn_set_signal_handling ("xfburn", NULL, 0);
@@ -279,6 +272,8 @@
if (ret < 0)
g_warning ("Fatal error while trying to retrieve libburn message!");
+ xfburn_device_list_console_messages ();
+
percent = (gdouble) progress.buffer_min_fill / (gdouble) progress.buffer_capacity;
xfburn_progress_dialog_set_buffer_bar_min_fill (XFBURN_PROGRESS_DIALOG (dialog_progress), percent);
More information about the Goodies-commits
mailing list