[Spice-devel] [spice-gtk Win32 v5 20/22] usb-device-manager: add 'state' field to SpiceUsbDeviceInfo
Uri Lublin
uril at redhat.com
Mon Jul 9 05:15:03 PDT 2012
To be used on Win32 to ignore extra udev events
received during driver install/uninstall.
---
gtk/usb-device-manager.c | 37 +++++++++++++++++++++++++++++++++++++
1 files changed, 37 insertions(+), 0 deletions(-)
diff --git a/gtk/usb-device-manager.c b/gtk/usb-device-manager.c
index 7733682..306b22b 100644
--- a/gtk/usb-device-manager.c
+++ b/gtk/usb-device-manager.c
@@ -110,6 +110,16 @@ struct _SpiceUsbDeviceManagerPrivate {
GPtrArray *channels;
};
+enum {
+ SPICE_USB_DEVICE_STATE_NONE = 0, /* this is also DISCONNECTED */
+ SPICE_USB_DEVICE_STATE_CONNECTING,
+ SPICE_USB_DEVICE_STATE_CONNECTED,
+ SPICE_USB_DEVICE_STATE_DISCONNECTING,
+ SPICE_USB_DEVICE_STATE_INSTALLING,
+ SPICE_USB_DEVICE_STATE_UNINSTALLING,
+ SPICE_USB_DEVICE_STATE_MAX
+};
+
#ifdef USE_USBREDIR
typedef struct _SpiceUsbDeviceInfo {
@@ -117,6 +127,8 @@ typedef struct _SpiceUsbDeviceInfo {
guint8 devaddr;
guint16 vid;
guint16 pid;
+ guint8 state;
+ guint8 reserved;
gint ref;
} SpiceUsbDeviceInfo;
@@ -136,6 +148,11 @@ static SpiceUsbDeviceInfo *spice_usb_device_new(libusb_device *libdev);
static SpiceUsbDevice *spice_usb_device_ref(SpiceUsbDevice *device);
static void spice_usb_device_unref(SpiceUsbDevice *device);
+#ifdef G_OS_WIN32
+static guint8 spice_usb_device_get_state(SpiceUsbDevice *device);
+static void spice_usb_device_set_state(SpiceUsbDevice *device, guint8 s);
+#endif
+
static gboolean spice_usb_device_equal_libdev(SpiceUsbDevice *device,
libusb_device *libdev);
static SpiceUsbDevice *
@@ -1364,6 +1381,26 @@ guint16 spice_usb_device_get_pid(SpiceUsbDevice *device)
return info->pid;
}
+#ifdef G_OS_WIN32
+void spice_usb_device_set_state(SpiceUsbDevice *device, guint8 state)
+{
+ SpiceUsbDeviceInfo *info = (SpiceUsbDeviceInfo *)device;
+
+ g_return_if_fail(info != NULL);
+
+ info->state = state;
+}
+
+guint8 spice_usb_device_get_state(SpiceUsbDevice *device)
+{
+ SpiceUsbDeviceInfo *info = (SpiceUsbDeviceInfo *)device;
+
+ g_return_val_if_fail(info != NULL, 0);
+
+ return info->state;
+}
+#endif
+
static SpiceUsbDevice *spice_usb_device_ref(SpiceUsbDevice *device)
{
SpiceUsbDeviceInfo *info = (SpiceUsbDeviceInfo *)device;
--
1.7.1
More information about the Spice-devel
mailing list