[Goodies-commits] r6740 - xfburn/trunk/xfburn
David Mohr
squisher at xfce.org
Sun Feb 22 07:11:57 CET 2009
Author: squisher
Date: 2009-02-22 06:11:57 +0000 (Sun, 22 Feb 2009)
New Revision: 6740
Modified:
xfburn/trunk/xfburn/xfburn-device-list.c
xfburn/trunk/xfburn/xfburn-device-list.h
xfburn/trunk/xfburn/xfburn-hal-manager.c
Log:
Check devices from hal for being a burner in the same way as libburn devices. Fixes bug 4957
Modified: xfburn/trunk/xfburn/xfburn-device-list.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-device-list.c 2009-02-22 05:53:45 UTC (rev 6739)
+++ xfburn/trunk/xfburn/xfburn-device-list.c 2009-02-22 06:11:57 UTC (rev 6740)
@@ -45,8 +45,7 @@
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
+#define DEVICE_INFO_PRINTF "%s can burn: %d [cdr: %d, cdrw: %d, dvdr: %d, dvdram: %d]", device->name, XFBURN_DEVICE_LIST_CAN_BURN_CONDITION(device), device->cdr, device->cdrw, device->dvdr, device->dvdram
/*************/
/* internals */
@@ -189,7 +188,7 @@
fillin_libburn_device_info (device, &drives[i]);
- can_burn = CAN_BURN_CONDITION;
+ can_burn = XFBURN_DEVICE_LIST_CAN_BURN_CONDITION(device);
ret = burn_drive_get_adr (&(drives[i]), device->addr);
if (ret <= 0)
Modified: xfburn/trunk/xfburn/xfburn-device-list.h
===================================================================
--- xfburn/trunk/xfburn/xfburn-device-list.h 2009-02-22 05:53:45 UTC (rev 6739)
+++ xfburn/trunk/xfburn/xfburn-device-list.h 2009-02-22 06:11:57 UTC (rev 6740)
@@ -77,6 +77,8 @@
} XfburnDevice;
+#define XFBURN_DEVICE_LIST_CAN_BURN_CONDITION(dev) ((dev)->cdr || (dev)->cdrw || (dev)->dvdr || (dev)->dvdram)
+
gint xfburn_device_list_init ();
XfburnDevice * xfburn_device_lookup_by_name (const gchar * name);
GList * xfburn_device_list_get_list ();
Modified: xfburn/trunk/xfburn/xfburn-hal-manager.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-hal-manager.c 2009-02-22 05:53:45 UTC (rev 6739)
+++ xfburn/trunk/xfburn/xfburn-hal-manager.c 2009-02-22 06:11:57 UTC (rev 6740)
@@ -330,7 +330,7 @@
for (devices = all_devices; *devices != NULL; devices++) {
dbus_bool_t exists;
char **cap_list, **caps;
- gboolean writer = FALSE;
+ gboolean optical_drive = FALSE;
int write_speed;
exists = libhal_device_property_exists (priv->hal_context, *devices, "info.capabilities", &error);
@@ -369,19 +369,16 @@
return -1;
}
- /* disable this check for the moment, assuming that the presence of the storage.cdrom.write_speed
- * property is enough to detect a writer. This fixes bug 4957 for now.
- if (write_speed > 0)
- */
- writer = TRUE;
+ optical_drive = TRUE;
}
}
libhal_free_string_array (cap_list);
- if (writer) {
+ if (optical_drive) {
XfburnDevice *device = g_new0 (XfburnDevice, 1);
char *str, *str_vendor;
gboolean dvdr = FALSE;
+
/*
libhal_device_print (priv->hal_context, *devices, &error);
printf ("\n");
@@ -394,6 +391,7 @@
*/
device->accessible = FALSE;
+
str_vendor = libhal_device_get_property_string (priv->hal_context, *devices, "storage.vendor", &error);
if (dbus_error_is_set (&error)) {
g_warning ("Error getting HAL property for %s: %s", *devices, error.message);
@@ -437,14 +435,6 @@
continue;
}
- device->cdr = libhal_device_get_property_bool (priv->hal_context, *devices, "storage.cdrom.cdr", &error);
- if (dbus_error_is_set (&error)) {
- g_warning ("Error getting HAL property for %s: %s", *devices, error.message);
- dbus_error_free (&error);
- g_free (device);
- continue;
- }
-
device->cdrw = libhal_device_get_property_bool (priv->hal_context, *devices, "storage.cdrom.cdrw", &error);
if (dbus_error_is_set (&error)) {
g_warning ("Error getting HAL property for %s: %s", *devices, error.message);
@@ -478,7 +468,13 @@
continue;
}
- DBG ("Found drive '%s' at '%s'", device->name, device->addr);
+ if (!XFBURN_DEVICE_LIST_CAN_BURN_CONDITION (device)) {
+ DBG ("Ignoring reader '%s' at '%s'", device->name, device->addr);
+ g_free (device);
+ continue;
+ }
+
+ DBG ("Found writer '%s' at '%s'", device->name, device->addr);
*device_list = g_list_append (*device_list, device);
n_devices++;
}
More information about the Goodies-commits
mailing list