[Spice-devel] [PATCH spice-gtk 07/15] usb: move device manager initialization to session

Jonathon Jongsma jjongsma at redhat.com
Tue Nov 25 14:51:01 PST 2014


ACK

On Tue, 2014-11-25 at 14:19 +0100, Marc-André Lureau wrote:
> Use session accessors to initialize the device manager.
> Add missing session parameter check (public API).
> ---
>  gtk/spice-session.c      | 34 ++++++++++++++++++++++++++++++++++
>  gtk/usb-device-manager.c | 33 ---------------------------------
>  2 files changed, 34 insertions(+), 33 deletions(-)
> 
> diff --git a/gtk/spice-session.c b/gtk/spice-session.c
> index 04979a1..2850d02 100644
> --- a/gtk/spice-session.c
> +++ b/gtk/spice-session.c
> @@ -2346,6 +2346,40 @@ SpiceAudio *spice_audio_get(SpiceSession *session, GMainContext *context)
>      return self;
>  }
>  
> +/**
> + * spice_usb_device_manager_get:
> + * @session: #SpiceSession for which to get the #SpiceUsbDeviceManager
> + *
> + * Gets the #SpiceUsbDeviceManager associated with the passed in #SpiceSession.
> + * A new #SpiceUsbDeviceManager instance will be created the first time this
> + * function is called for a certain #SpiceSession.
> + *
> + * Note that this function returns a weak reference, which should not be used
> + * after the #SpiceSession itself has been unref-ed by the caller.
> + *
> + * Returns: (transfer none): a weak reference to the #SpiceUsbDeviceManager associated with the passed in #SpiceSession
> + */
> +SpiceUsbDeviceManager *spice_usb_device_manager_get(SpiceSession *session,
> +                                                    GError **err)
> +{
> +    SpiceUsbDeviceManager *self;
> +    static GStaticMutex mutex = G_STATIC_MUTEX_INIT;
> +
> +    g_return_val_if_fail(SPICE_IS_SESSION(session), NULL);
> +    g_return_val_if_fail(err == NULL || *err == NULL, NULL);
> +
> +    g_static_mutex_lock(&mutex);
> +    self = session->priv->usb_manager;
> +    if (self == NULL) {
> +        self = g_initable_new(SPICE_TYPE_USB_DEVICE_MANAGER, NULL, err,
> +                              "session", session, NULL);
> +        session->priv->usb_manager = self;
> +    }
> +    g_static_mutex_unlock(&mutex);
> +
> +    return self;
> +}
> +
>  G_GNUC_INTERNAL
>  gboolean spice_session_get_audio_enabled(SpiceSession *session)
>  {
> diff --git a/gtk/usb-device-manager.c b/gtk/usb-device-manager.c
> index f80b657..a7b1140 100644
> --- a/gtk/usb-device-manager.c
> +++ b/gtk/usb-device-manager.c
> @@ -1300,39 +1300,6 @@ static SpiceUsbredirChannel *spice_usb_device_manager_get_channel_for_dev(
>  /* public api                                                         */
>  
>  /**
> - * spice_usb_device_manager_get:
> - * @session: #SpiceSession for which to get the #SpiceUsbDeviceManager
> - *
> - * Gets the #SpiceUsbDeviceManager associated with the passed in #SpiceSession.
> - * A new #SpiceUsbDeviceManager instance will be created the first time this
> - * function is called for a certain #SpiceSession.
> - *
> - * Note that this function returns a weak reference, which should not be used
> - * after the #SpiceSession itself has been unref-ed by the caller.
> - *
> - * Returns: (transfer none): a weak reference to the #SpiceUsbDeviceManager associated with the passed in #SpiceSession
> - */
> -SpiceUsbDeviceManager *spice_usb_device_manager_get(SpiceSession *session,
> -                                                    GError **err)
> -{
> -    SpiceUsbDeviceManager *self;
> -    static GStaticMutex mutex = G_STATIC_MUTEX_INIT;
> -
> -    g_return_val_if_fail(err == NULL || *err == NULL, NULL);
> -
> -    g_static_mutex_lock(&mutex);
> -    self = session->priv->usb_manager;
> -    if (self == NULL) {
> -        self = g_initable_new(SPICE_TYPE_USB_DEVICE_MANAGER, NULL, err,
> -                              "session", session, NULL);
> -        session->priv->usb_manager = self;
> -    }
> -    g_static_mutex_unlock(&mutex);
> -
> -    return self;
> -}
> -
> -/**
>   * spice_usb_device_manager_get_devices_with_filter:
>   * @manager: the #SpiceUsbDeviceManager manager
>   * @filter: (allow-none): filter string for selecting which devices to return,




More information about the Spice-devel mailing list