[Spice-commits] gtk/usb-device-manager.c gtk/usb-device-manager-priv.h
Marc-André Lureau
elmarco at kemper.freedesktop.org
Fri Jan 6 15:04:46 PST 2012
gtk/usb-device-manager-priv.h | 2 ++
gtk/usb-device-manager.c | 25 ++++++++++++++++---------
2 files changed, 18 insertions(+), 9 deletions(-)
New commits:
commit 4c16f6af86c239a7dda62e95c63da3eef80cc8b5
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date: Thu Jan 5 13:41:20 2012 +0100
build: fix compilation with --disable-usbredir
diff --git a/gtk/usb-device-manager-priv.h b/gtk/usb-device-manager-priv.h
index e6e116c..7e1aea3 100644
--- a/gtk/usb-device-manager-priv.h
+++ b/gtk/usb-device-manager-priv.h
@@ -25,7 +25,9 @@
G_BEGIN_DECLS
+#ifdef USE_USBREDIR
const char *spice_usb_device_manager_libusb_strerror(enum libusb_error error_code);
+#endif
gboolean spice_usb_device_manager_start_event_listening(
SpiceUsbDeviceManager *manager, GError **err);
diff --git a/gtk/usb-device-manager.c b/gtk/usb-device-manager.c
index e55caae..cb4e6dc 100644
--- a/gtk/usb-device-manager.c
+++ b/gtk/usb-device-manager.c
@@ -112,6 +112,13 @@ static void spice_usb_device_manager_uevent_cb(GUdevClient *client,
gpointer user_data);
static void spice_usb_device_manager_add_dev(SpiceUsbDeviceManager *self,
GUdevDevice *udev);
+
+G_DEFINE_BOXED_TYPE(SpiceUsbDevice, spice_usb_device,
+ (GBoxedCopyFunc)libusb_ref_device,
+ (GBoxedFreeFunc)libusb_unref_device)
+
+#else
+G_DEFINE_BOXED_TYPE(SpiceUsbDevice, spice_usb_device, g_object_ref, g_object_unref)
#endif
static void spice_usb_device_manager_initable_iface_init(GInitableIface *iface);
@@ -120,10 +127,6 @@ static guint signals[LAST_SIGNAL] = { 0, };
G_DEFINE_TYPE_WITH_CODE(SpiceUsbDeviceManager, spice_usb_device_manager, G_TYPE_OBJECT,
G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, spice_usb_device_manager_initable_iface_init));
-G_DEFINE_BOXED_TYPE(SpiceUsbDevice, spice_usb_device,
- (GBoxedCopyFunc)libusb_ref_device,
- (GBoxedFreeFunc)libusb_unref_device)
-
static void spice_usb_device_manager_init(SpiceUsbDeviceManager *self)
{
SpiceUsbDeviceManagerPrivate *priv;
@@ -132,8 +135,10 @@ static void spice_usb_device_manager_init(SpiceUsbDeviceManager *self)
self->priv = priv;
priv->channels = g_ptr_array_new();
+#ifdef USE_USBREDIR
priv->devices = g_ptr_array_new_with_free_func((GDestroyNotify)
libusb_unref_device);
+#endif
}
static gboolean spice_usb_device_manager_initable_init(GInitable *initable,
@@ -216,7 +221,8 @@ static void spice_usb_device_manager_finalize(GObject *gobject)
SpiceUsbDeviceManagerPrivate *priv = self->priv;
g_ptr_array_unref(priv->channels);
- g_ptr_array_unref(priv->devices);
+ if (priv->devices)
+ g_ptr_array_unref(priv->devices);
#ifdef USE_USBREDIR
g_clear_object(&priv->udev);
@@ -735,19 +741,20 @@ SpiceUsbDeviceManager *spice_usb_device_manager_get(SpiceSession *session,
*/
GPtrArray* spice_usb_device_manager_get_devices(SpiceUsbDeviceManager *self)
{
- SpiceUsbDeviceManagerPrivate *priv;
- GPtrArray *devices_copy;
- guint i;
+ GPtrArray *devices_copy = NULL;
g_return_val_if_fail(SPICE_IS_USB_DEVICE_MANAGER(self), NULL);
- priv = self->priv;
+#ifdef USE_USBREDIR
+ SpiceUsbDeviceManagerPrivate *priv = self->priv;
+
devices_copy = g_ptr_array_new_with_free_func((GDestroyNotify)
libusb_unref_device);
for (i = 0; i < priv->devices->len; i++) {
libusb_device *device = g_ptr_array_index(priv->devices, i);
g_ptr_array_add(devices_copy, libusb_ref_device(device));
}
+#endif
return devices_copy;
}
More information about the Spice-commits
mailing list