diff options
author | Pavel Grunt <pgrunt@redhat.com> | 2015-06-16 15:52:12 +0200 |
---|---|---|
committer | Pavel Grunt <pgrunt@redhat.com> | 2015-06-25 15:34:31 +0200 |
commit | 980798534c51fe21af6476f9d15f4e0e19295b07 (patch) | |
tree | fcadabbfa8fedd64a089a490f1969a7c7f43f2bb | |
parent | e379c340b724aa4a53be0915b9d7818bfc6fe751 (diff) |
channel-main: Use enum to describe display state
-rw-r--r-- | src/channel-main.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/channel-main.c b/src/channel-main.c index c55d097..8f5edf2 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 : 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); |