diff options
Diffstat (limited to 'multimedia/cheese/files/patch-libcheese_cheese-camera-device-monitor.c')
-rw-r--r-- | multimedia/cheese/files/patch-libcheese_cheese-camera-device-monitor.c | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/multimedia/cheese/files/patch-libcheese_cheese-camera-device-monitor.c b/multimedia/cheese/files/patch-libcheese_cheese-camera-device-monitor.c index 05da52bbd4f6..8604c237799c 100644 --- a/multimedia/cheese/files/patch-libcheese_cheese-camera-device-monitor.c +++ b/multimedia/cheese/files/patch-libcheese_cheese-camera-device-monitor.c @@ -1,5 +1,5 @@ ---- libcheese/cheese-camera-device-monitor.c.orig 2010-03-29 16:27:42.000000000 -0400 -+++ libcheese/cheese-camera-device-monitor.c 2010-04-17 17:57:57.000000000 -0400 +--- libcheese/cheese-camera-device-monitor.c.orig 2010-08-16 23:00:43.000000000 +0200 ++++ libcheese/cheese-camera-device-monitor.c 2010-08-18 09:51:48.000000000 +0200 @@ -24,24 +24,11 @@ #endif @@ -54,12 +54,12 @@ } CheeseCameraDeviceMonitorPrivate; enum -@@ -102,111 +87,79 @@ cheese_camera_device_monitor_error_quark +@@ -102,111 +87,77 @@ cheese_camera_device_monitor_error_quark return g_quark_from_static_string ("cheese-camera-error-quark"); } -#ifdef HAVE_UDEV - static void +-static void -cheese_camera_device_monitor_added (CheeseCameraDeviceMonitor *monitor, - GUdevDevice *udevice) +cheese_camera_device_monitor_handle_udi (CheeseCameraDeviceMonitor *monitor, @@ -93,7 +93,7 @@ - vendor_id = g_ascii_strtoll (vendor, NULL, 16); - product = g_udev_device_get_property (udevice, "ID_MODEL_ID"); - if (product != NULL) -- product_id = g_ascii_strtoll (vendor, NULL, 16); +- product_id = g_ascii_strtoll (product, NULL, 16); - if (vendor_id == 0 || product_id == 0) - { - GST_WARNING ("Error getting vendor and product id"); @@ -119,10 +119,10 @@ + if (dbus_error_is_set (&error)) { - GST_WARNING ("Error getting V4L device"); +- return; + GST_WARNING ("error getting V4L device for %s: %s: %s", udi, error.name, error.message); + dbus_error_free (&error); + libhal_free_string (product_name); - return; } - /* vbi devices support capture capability too, but cannot be used, @@ -181,12 +181,13 @@ static void -cheese_camera_device_monitor_removed (CheeseCameraDeviceMonitor *monitor, - GUdevDevice *udevice) -+cheese_camera_device_monitor_removed (LibHalContext *ctx, -+ const char *udi) - { +-{ - g_signal_emit (monitor, monitor_signals[REMOVED], 0, - g_udev_device_get_property (udevice, "DEVPATH")); -} ++cheese_camera_device_monitor_removed (LibHalContext *ctx, ++ const char *udi) ++ { + CheeseCameraDeviceMonitor *monitor; + void *data; @@ -209,7 +210,7 @@ } /** -@@ -222,115 +175,85 @@ void +@@ -222,115 +173,85 @@ void cheese_camera_device_monitor_coldplug (CheeseCameraDeviceMonitor *monitor) { CheeseCameraDeviceMonitorPrivate *priv = CHEESE_CAMERA_DEVICE_MONITOR_GET_PRIVATE (monitor); @@ -221,19 +222,20 @@ + DBusError error; - if (priv->client == NULL) +- return; + GST_INFO ("Probing devices with HAL..."); -+ -+ if (priv->hal_ctx == NULL) - return; - GST_INFO ("Probing devices with udev..."); -+ dbus_error_init (&error); ++ if (priv->hal_ctx == NULL) ++ return; - devices = g_udev_client_query_by_subsystem (priv->client, "video4linux"); -+ udis = libhal_find_device_by_capability (priv->hal_ctx, "video4linux", &num_udis, &error); ++ dbus_error_init (&error); - /* Initialize camera structures */ - for (l = devices; l != NULL; l = l->next) ++ udis = libhal_find_device_by_capability (priv->hal_ctx, "video4linux", &num_udis, &error); ++ + if (dbus_error_is_set (&error)) { - cheese_camera_device_monitor_added (monitor, l->data); @@ -373,7 +375,7 @@ G_OBJECT_CLASS (cheese_camera_device_monitor_parent_class)->finalize (object); } -@@ -385,14 +308,52 @@ cheese_camera_device_monitor_class_init +@@ -385,14 +306,52 @@ cheese_camera_device_monitor_class_init static void cheese_camera_device_monitor_init (CheeseCameraDeviceMonitor *monitor) { |