ack On Mon, Jul 9, 2012 at 2:15 PM, Uri Lublin <uril@xxxxxxxxxx> wrote: > --- > gtk/win-usb-driver-install.c | 67 +++++++++++++++++++++++++++++------------ > gtk/win-usb-driver-install.h | 6 ++++ > 2 files changed, 53 insertions(+), 20 deletions(-) > > diff --git a/gtk/win-usb-driver-install.c b/gtk/win-usb-driver-install.c > index 5b9db62..8b326b5 100644 > --- a/gtk/win-usb-driver-install.c > +++ b/gtk/win-usb-driver-install.c > @@ -246,29 +246,19 @@ SpiceWinUsbDriver *spice_win_usb_driver_new(void) > return SPICE_WIN_USB_DRIVER(obj); > } > > -/** > - * spice_win_usb_driver_install: > - * Start libusb driver installation for @device > - * > - * A new NamedPipe is created for each request. > - * > - * Returns: TRUE if a request was sent to usbclerk > - * FALSE upon failure to send a request. > - */ > -G_GNUC_INTERNAL > -void spice_win_usb_driver_install(SpiceWinUsbDriver *self, > - SpiceUsbDevice *device, > - GCancellable *cancellable, > - GAsyncReadyCallback callback, > - gpointer user_data) > +static > +void spice_win_usb_driver_op(SpiceWinUsbDriver *self, > + SpiceUsbDevice *device, > + guint16 op_type, > + GCancellable *cancellable, > + GAsyncReadyCallback callback, > + gpointer user_data) > { > guint16 vid, pid; > GError *err = NULL; > GSimpleAsyncResult *result; > SpiceWinUsbDriverPrivate *priv; > > - SPICE_DEBUG("Win usb driver installation started"); > - > g_return_if_fail(SPICE_IS_WIN_USB_DRIVER(self)); > g_return_if_fail(device != NULL); > > @@ -277,7 +267,7 @@ void spice_win_usb_driver_install(SpiceWinUsbDriver *self, > g_return_if_fail(priv->result == NULL); > > result = g_simple_async_result_new(G_OBJECT(self), callback, user_data, > - spice_win_usb_driver_install); > + spice_win_usb_driver_op); > > vid = spice_usb_device_get_vid(device); > pid = spice_usb_device_get_pid(device); > @@ -300,7 +290,7 @@ void spice_win_usb_driver_install(SpiceWinUsbDriver *self, > goto failed_request; > } > > - if (!spice_win_usb_driver_send_request(self, USB_CLERK_DRIVER_INSTALL, > + if (!spice_win_usb_driver_send_request(self, op_type, > vid, pid, &err)) { > g_warning("failed to send a request to usbclerk %s", err->message); > g_simple_async_result_take_error(result, err); > @@ -323,6 +313,43 @@ void spice_win_usb_driver_install(SpiceWinUsbDriver *self, > } > > > + > +/** > + * spice_win_usb_driver_install: > + * Start libusb driver installation for @device > + * > + * A new NamedPipe is created for each request. > + * > + * Returns: TRUE if a request was sent to usbclerk > + * FALSE upon failure to send a request. > + */ > +G_GNUC_INTERNAL > +void spice_win_usb_driver_install(SpiceWinUsbDriver *self, > + SpiceUsbDevice *device, > + GCancellable *cancellable, > + GAsyncReadyCallback callback, > + gpointer user_data) > +{ > + SPICE_DEBUG("Win usb driver installation started"); > + > + spice_win_usb_driver_op(self, device, USB_CLERK_DRIVER_INSTALL, cancellable, > + callback, user_data); > +} > + > +G_GNUC_INTERNAL > +void spice_win_usb_driver_uninstall(SpiceWinUsbDriver *self, > + SpiceUsbDevice *device, > + GCancellable *cancellable, > + GAsyncReadyCallback callback, > + gpointer user_data) > +{ > + SPICE_DEBUG("Win usb driver uninstall operation started"); > + > + spice_win_usb_driver_op(self, device, USB_CLERK_DRIVER_REMOVE, cancellable, > + callback, user_data); > +} > + > + > /** > * Returns: currently returns 0 (failure) and 1 (success) > * possibly later we'll add error-codes > @@ -335,7 +362,7 @@ gint spice_win_usb_driver_install_finish(SpiceWinUsbDriver *self, > > g_return_val_if_fail(SPICE_IS_WIN_USB_DRIVER(self), 0); > g_return_val_if_fail(g_simple_async_result_is_valid(res, G_OBJECT(self), > - spice_win_usb_driver_install), > + spice_win_usb_driver_op), > FALSE); > if (g_simple_async_result_propagate_error(result, err)) > return 0; > diff --git a/gtk/win-usb-driver-install.h b/gtk/win-usb-driver-install.h > index b0ccf33..034abf9 100644 > --- a/gtk/win-usb-driver-install.h > +++ b/gtk/win-usb-driver-install.h > @@ -70,6 +70,12 @@ void spice_win_usb_driver_install(SpiceWinUsbDriver *self, > GAsyncReadyCallback callback, > gpointer user_data); > > +void spice_win_usb_driver_uninstall(SpiceWinUsbDriver *self, > + SpiceUsbDevice *device, > + GCancellable *cancellable, > + GAsyncReadyCallback callback, > + gpointer user_data); > + > gint spice_win_usb_driver_install_finish(SpiceWinUsbDriver *self, > GAsyncResult *res, GError **err); > > -- > 1.7.1 > > _______________________________________________ > Spice-devel mailing list > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/spice-devel -- Marc-André Lureau _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel