[Spice-devel] [spice-gtk PATCH 5/9] usb-device-manager: find_libdev: use a match function
Uri Lublin
uril at redhat.com
Mon Mar 25 03:01:26 PDT 2013
Instead of comparing directly against <bus, address>.
In preparation of comparing against vid:pid for Windows clients.
---
gtk/usb-device-manager.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/gtk/usb-device-manager.c b/gtk/usb-device-manager.c
index d58fb72..b4320af 100644
--- a/gtk/usb-device-manager.c
+++ b/gtk/usb-device-manager.c
@@ -663,6 +663,14 @@ spice_usb_device_manager_device_match(SpiceUsbDevice *device,
spice_usb_device_get_devaddr(device) == address);
}
+static gboolean
+spice_usb_device_manager_libdev_match(libusb_device *libdev,
+ const int bus, const int address)
+{
+ return (libusb_get_bus_number(libdev) == bus &&
+ libusb_get_device_address(libdev) == address);
+}
+
static SpiceUsbDevice*
spice_usb_device_manager_find_device(SpiceUsbDeviceManager *self,
const int bus, const int address)
@@ -718,8 +726,7 @@ static void spice_usb_device_manager_add_dev(SpiceUsbDeviceManager *self,
libusb_get_device_list(priv->context, &dev_list);
for (i = 0; dev_list && dev_list[i]; i++) {
- if (libusb_get_bus_number(dev_list[i]) == bus &&
- libusb_get_device_address(dev_list[i]) == address) {
+ if (spice_usb_device_manager_libdev_match(dev_list[i], bus, address)) {
libdev = dev_list[i];
break;
}
@@ -1589,7 +1596,7 @@ spice_usb_device_manager_device_to_libdev(SpiceUsbDeviceManager *self,
SpiceUsbDevice *device)
{
libusb_device *d, **devlist;
- guint8 bus, addr;
+ int bus, addr;
int i;
g_return_val_if_fail(SPICE_IS_USB_DEVICE_MANAGER(self), NULL);
@@ -1605,8 +1612,7 @@ spice_usb_device_manager_device_to_libdev(SpiceUsbDeviceManager *self,
return NULL;
for (i = 0; (d = devlist[i]) != NULL; i++) {
- if ((libusb_get_bus_number(d) == bus) &&
- (libusb_get_device_address(d) == addr)) {
+ if (spice_usb_device_manager_libdev_match(d, bus, addr)) {
libusb_ref_device(d);
break;
}
--
1.8.1.4
More information about the Spice-devel
mailing list