[Spice-devel] [PATCH 1/4] move cursor_connect to CursorChannel

Jonathon Jongsma jjongsma at redhat.com
Wed May 25 20:06:15 UTC 2016


Looks like an improvment

Acked-by: Jonathon Jongsma <jjongsma at redhat.com>


On Fri, 2016-05-13 at 10:16 +0100, Frediano Ziglio wrote:
> This function was handling mainly CursorChannel state
> 
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
>  server/cursor-channel.c | 23 +++++++++++++++++++++++
>  server/cursor-channel.h |  5 +++++
>  server/red-worker.c     | 32 ++++----------------------------
>  3 files changed, 32 insertions(+), 28 deletions(-)
> 
> diff --git a/server/cursor-channel.c b/server/cursor-channel.c
> index 444d89b..c67c88f 100644
> --- a/server/cursor-channel.c
> +++ b/server/cursor-channel.c
> @@ -569,3 +569,26 @@ void cursor_channel_set_mouse_mode(CursorChannel *cursor,
> uint32_t mode)
>  
>      cursor->mouse_mode = mode;
>  }
> +
> +void cursor_channel_connect(CursorChannel *cursor, RedClient *client,
> RedsStream *stream,
> +                            int migrate,
> +                            uint32_t *common_caps, int num_common_caps,
> +                            uint32_t *caps, int num_caps)
> +{
> +    CursorChannelClient *ccc;
> +
> +    spice_return_if_fail(cursor != NULL);
> +
> +    spice_info("add cursor channel client");
> +    ccc = cursor_channel_client_new(cursor, client, stream,
> +                                    migrate,
> +                                    common_caps, num_common_caps,
> +                                    caps, num_caps);
> +    spice_return_if_fail(ccc != NULL);
> +
> +    RedChannelClient *rcc = RED_CHANNEL_CLIENT(ccc);
> +    red_channel_client_ack_zero_messages_window(rcc);
> +    red_channel_client_push_set_ack(rcc);
> +
> +    cursor_channel_init(cursor, ccc);
> +}
> diff --git a/server/cursor-channel.h b/server/cursor-channel.h
> index 4dad4b6..ecb20a4 100644
> --- a/server/cursor-channel.h
> +++ b/server/cursor-channel.h
> @@ -34,6 +34,11 @@ void                 cursor_channel_reset      
>  (CursorChannel *cursor);
>  void                 cursor_channel_init        (CursorChannel *cursor,
> CursorChannelClient* client);
>  void                 cursor_channel_process_cmd (CursorChannel *cursor,
> RedCursorCmd *cursor_cmd);
>  void                 cursor_channel_set_mouse_mode(CursorChannel *cursor,
> uint32_t mode);
> +void                 cursor_channel_connect     (CursorChannel *cursor,
> RedClient *client, 
> +                                                 RedsStream *stream,
> +                                                 int migrate,
> +                                                 uint32_t *common_caps, int
> num_common_caps,
> +                                                 uint32_t *caps, int
> num_caps);
>  
>  CursorChannelClient* cursor_channel_client_new(CursorChannel *cursor,
>                                                 RedClient *client, RedsStream
> *stream,
> diff --git a/server/red-worker.c b/server/red-worker.c
> index 8d8073e..f6d626b 100644
> --- a/server/red-worker.c
> +++ b/server/red-worker.c
> @@ -544,30 +544,6 @@ static void guest_set_client_capabilities(RedWorker
> *worker)
>      }
>  }
>  
> -static void cursor_connect(RedWorker *worker, RedClient *client, RedsStream
> *stream,
> -                           int migrate,
> -                           uint32_t *common_caps, int num_common_caps,
> -                           uint32_t *caps, int num_caps)
> -{
> -    CursorChannel *channel = worker->cursor_channel;
> -    CursorChannelClient *ccc;
> -
> -    spice_return_if_fail(channel != NULL);
> -
> -    spice_info("add cursor channel client");
> -    ccc = cursor_channel_client_new(channel, client, stream,
> -                                    migrate,
> -                                    common_caps, num_common_caps,
> -                                    caps, num_caps);
> -    spice_return_if_fail(ccc != NULL);
> -
> -    RedChannelClient *rcc = RED_CHANNEL_CLIENT(ccc);
> -    red_channel_client_ack_zero_messages_window(rcc);
> -    red_channel_client_push_set_ack(rcc);
> -
> -    cursor_channel_init(channel, ccc);
> -}
> -
>  static void handle_dev_update_async(void *opaque, void *payload)
>  {
>      RedWorker *worker = opaque;
> @@ -1000,10 +976,10 @@ static void handle_dev_cursor_connect(void *opaque,
> void *payload)
>      RedWorker *worker = opaque;
>  
>      spice_info("cursor connect");
> -    cursor_connect(worker,
> -                   msg->client, msg->stream, msg->migration,
> -                   msg->common_caps, msg->num_common_caps,
> -                   msg->caps, msg->num_caps);
> +    cursor_channel_connect(worker->cursor_channel,
> +                           msg->client, msg->stream, msg->migration,
> +                           msg->common_caps, msg->num_common_caps,
> +                           msg->caps, msg->num_caps);
>      free(msg->caps);
>      free(msg->common_caps);
>  }


More information about the Spice-devel mailing list