> On 29 Jan 2016, at 24:42 AM, Jonathon Jongsma <jjongsma@xxxxxxxxxx> wrote: > > On Thu, 2015-10-29 at 17:26 +0200, Dmitry Fleytman wrote: >> Signed-off-by: Dmitry Fleytman <dmitry@xxxxxxxxxx> >> --- >> spice-common | 2 +- >> src/usb-device-manager.c | 108 ++++++++++++++++++++++++++++------------------ >> - >> 2 files changed, 66 insertions(+), 44 deletions(-) >> >> diff --git a/spice-common b/spice-common >> index f7ec855..2d054e0 160000 >> --- a/spice-common >> +++ b/spice-common >> @@ -1 +1 @@ >> -Subproject commit f7ec855af3deff18aeb43ddbf2467c565f4bf346 >> +Subproject commit 2d054e0e6901a1cfbe396f30d9899da46ff533d9 > > It looks like this submodule update can be removed. Right, it should not be there. > > In general I don't see a huge need to move these to separate functions, since > they're not used elsewhere. But OK. These functions needed to make next patches of the same series simpler. Probably this should be stated in the commit message. > > >> diff --git a/src/usb-device-manager.c b/src/usb-device-manager.c >> index 4930613..78f038e 100644 >> --- a/src/usb-device-manager.c >> +++ b/src/usb-device-manager.c >> @@ -1396,6 +1396,68 @@ gboolean >> spice_usb_device_manager_is_device_connected(SpiceUsbDeviceManager *sel >> return !!spice_usb_device_manager_get_channel_for_dev(self, device); >> } >> >> +#if defined(USE_USBREDIR) && defined(G_OS_WIN32) >> + >> +static void >> +_spice_usb_device_manager_install_driver_async(SpiceUsbDeviceManager *self, >> + SpiceUsbDevice *device, >> + GCancellable *cancellable, >> + GAsyncReadyCallback callback, >> + gpointer user_data) >> +{ >> + SpiceWinUsbDriver *installer; >> + UsbInstallCbInfo *cbinfo; >> + >> + g_return_if_fail(self->priv->installer); >> + >> + spice_usb_device_set_state(device, SPICE_USB_DEVICE_STATE_INSTALLING); >> + >> + installer = self->priv->installer; >> + cbinfo = g_new0(UsbInstallCbInfo, 1); >> + cbinfo->manager = self; >> + cbinfo->device = spice_usb_device_ref(device); >> + cbinfo->installer = installer; >> + cbinfo->cancellable = cancellable; >> + cbinfo->callback = callback; >> + cbinfo->user_data = user_data; >> + >> + spice_win_usb_driver_install_async(installer, device, cancellable, >> + >> spice_usb_device_manager_drv_install_cb, >> + cbinfo); >> +} >> + >> +static void >> +_spice_usb_device_manager_uninstall_driver_async(SpiceUsbDeviceManager *self, >> + SpiceUsbDevice *device) >> +{ >> + SpiceWinUsbDriver *installer; >> + UsbInstallCbInfo *cbinfo; >> + guint8 state; >> + >> + g_warn_if_fail(device != NULL); >> + g_return_if_fail(self->priv->installer); >> + >> + state = spice_usb_device_get_state(device); >> + if ((state != SPICE_USB_DEVICE_STATE_INSTALLED) && >> + (state != SPICE_USB_DEVICE_STATE_CONNECTED)) { >> + return; >> + } >> + >> + spice_usb_device_set_state(device, SPICE_USB_DEVICE_STATE_UNINSTALLING); >> + >> + installer = self->priv->installer; >> + cbinfo = g_new0(UsbInstallCbInfo, 1); >> + cbinfo->manager = self; >> + cbinfo->device = spice_usb_device_ref(device); >> + cbinfo->installer = installer; >> + >> + spice_win_usb_driver_uninstall_async(installer, device, NULL, >> + >> spice_usb_device_manager_drv_uninstall_cb, >> + cbinfo); >> +} >> + >> +#endif >> + >> static void >> _spice_usb_device_manager_connect_device_async(SpiceUsbDeviceManager *self, >> SpiceUsbDevice *device, >> @@ -1491,25 +1553,8 @@ void >> spice_usb_device_manager_connect_device_async(SpiceUsbDeviceManager *self, >> { >> >> #if defined(USE_USBREDIR) && defined(G_OS_WIN32) >> - SpiceWinUsbDriver *installer; >> - UsbInstallCbInfo *cbinfo; >> - >> - g_return_if_fail(self->priv->installer); >> - >> - spice_usb_device_set_state(device, SPICE_USB_DEVICE_STATE_INSTALLING); >> - >> - installer = self->priv->installer; >> - cbinfo = g_new0(UsbInstallCbInfo, 1); >> - cbinfo->manager = self; >> - cbinfo->device = spice_usb_device_ref(device); >> - cbinfo->installer = installer; >> - cbinfo->cancellable = cancellable; >> - cbinfo->callback = callback; >> - cbinfo->user_data = user_data; >> - >> - spice_win_usb_driver_install_async(installer, device, cancellable, >> - >> spice_usb_device_manager_drv_install_cb, >> - cbinfo); >> + _spice_usb_device_manager_install_driver_async(self, device, cancellable, >> + callback, user_data); >> #else >> _spice_usb_device_manager_connect_device_async(self, >> device, >> @@ -1569,30 +1614,7 @@ void >> spice_usb_device_manager_disconnect_device(SpiceUsbDeviceManager *self, >> spice_usbredir_channel_disconnect_device(channel); >> >> #ifdef G_OS_WIN32 >> - SpiceWinUsbDriver *installer; >> - UsbInstallCbInfo *cbinfo; >> - guint8 state; >> - >> - g_warn_if_fail(device != NULL); >> - g_return_if_fail(self->priv->installer); >> - >> - state = spice_usb_device_get_state(device); >> - if ((state != SPICE_USB_DEVICE_STATE_INSTALLED) && >> - (state != SPICE_USB_DEVICE_STATE_CONNECTED)) { >> - return; >> - } >> - >> - spice_usb_device_set_state(device, SPICE_USB_DEVICE_STATE_UNINSTALLING); >> - >> - installer = self->priv->installer; >> - cbinfo = g_new0(UsbInstallCbInfo, 1); >> - cbinfo->manager = self; >> - cbinfo->device = spice_usb_device_ref(device); >> - cbinfo->installer = installer; >> - >> - spice_win_usb_driver_uninstall_async(installer, device, NULL, >> - >> spice_usb_device_manager_drv_uninstall_cb, >> - cbinfo); >> + _spice_usb_device_manager_uninstall_driver_async(self, device); >> #endif >> >> #endif _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel