[Spice-devel] [PATCH spice-gtk 1/2] channel-main: Use enum to describe display state

Marc-André Lureau mlureau at redhat.com
Fri Jun 19 09:51:01 PDT 2015


hi

----- Original Message -----
> ---
>  src/channel-main.c | 24 ++++++++++++++----------
>  1 file changed, 14 insertions(+), 10 deletions(-)
> 
> diff --git a/src/channel-main.c b/src/channel-main.c
> index c55d097..4e8046e 100644
> --- a/src/channel-main.c
> +++ b/src/channel-main.c
> @@ -74,6 +74,12 @@ typedef struct SpiceFileXferTask {
>      GError                         *error;
>  } SpiceFileXferTask;
>  
> +typedef enum {
> +    DISPLAY_UNDEFINED,
> +    DISPLAY_DISABLED,
> +    DISPLAY_ENABLED,
> +} SpiceDisplayState;
> +
>  struct _SpiceMainChannelPrivate  {
>      enum SpiceMouseMode         mouse_mode;
>      bool                        agent_connected;
> @@ -98,8 +104,7 @@ struct _SpiceMainChannelPrivate  {
>          int                     y;
>          int                     width;
>          int                     height;
> -        gboolean                enabled;
> -        gboolean                enabled_set;
> +        SpiceDisplayState       display_state;
>      } display[MAX_DISPLAY];
>      gint                        timer_id;
>      GQueue                      *agent_msg_queue;
> @@ -1058,7 +1063,7 @@ gboolean
> spice_main_send_monitor_config(SpiceMainChannel *channel)
>      } else {
>          monitors = 0;
>          for (i = 0; i < SPICE_N_ELEMENTS(c->display); i++) {
> -            if (c->display[i].enabled)
> +            if (c->display[i].display_state == DISPLAY_ENABLED)
>                  monitors += 1;
>          }
>      }
> @@ -1073,7 +1078,7 @@ gboolean
> spice_main_send_monitor_config(SpiceMainChannel *channel)
>  
>      j = 0;
>      for (i = 0; i < SPICE_N_ELEMENTS(c->display); i++) {
> -        if (!c->display[i].enabled) {
> +        if (c->display[i].display_state != DISPLAY_ENABLED) {
>              if (spice_main_agent_test_capability(channel,
>                                       VD_AGENT_CAP_SPARSE_MONITORS_CONFIG))
>                  j++;
> @@ -1426,7 +1431,7 @@ static gboolean timer_set_display(gpointer data)
>      /* ensure we have an explicit monitor configuration at least for
>         number of display channels */
>      for (i = 0; i < spice_session_get_n_display_channels(session); i++)
> -        if (!c->display[i].enabled_set) {
> +        if (c->display[i].display_state == DISPLAY_UNDEFINED) {
>              SPICE_DEBUG("Not sending monitors config, missing monitors");
>              return FALSE;
>          }
> @@ -2742,6 +2747,7 @@ void
> spice_main_clipboard_selection_request(SpiceMainChannel *channel, guint sel
>   **/
>  void spice_main_set_display_enabled(SpiceMainChannel *channel, int id,
>  gboolean enabled)
>  {
> +    SpiceDisplayState display_state = (enabled) ? DISPLAY_ENABLED :

extra parentheses

> DISPLAY_DISABLED;
>      g_return_if_fail(channel != NULL);
>      g_return_if_fail(SPICE_IS_MAIN_CHANNEL(channel));
>      g_return_if_fail(id >= -1);
> @@ -2751,15 +2757,13 @@ void spice_main_set_display_enabled(SpiceMainChannel
> *channel, int id, gboolean
>      if (id == -1) {
>          gint i;
>          for (i = 0; i < G_N_ELEMENTS(c->display); i++) {
> -            c->display[i].enabled = enabled;
> -            c->display[i].enabled_set = TRUE;
> +            c->display[i].display_state = display_state;
>          }
>      } else {
>          g_return_if_fail(id < G_N_ELEMENTS(c->display));
> -        if (c->display[id].enabled == enabled)
> +        if (c->display[id].display_state == display_state)
>              return;
> -        c->display[id].enabled = enabled;
> -        c->display[id].enabled_set = TRUE;
> +        c->display[id].display_state = display_state;
>      }
>  
>      update_display_timer(channel, 1);
> --
> 2.4.4

looks good, ack


More information about the Spice-devel mailing list