[gtk-vnc] Remove use of hardcoded constants



commit df5f70d37bc1ce2e394da0da36e979a97e20c604
Author: Daniel P. Berrange <berrange redhat com>
Date:   Mon Jul 2 16:51:03 2012 +0100

    Remove use of hardcoded constants
    
    Currently code which sends/receives client/server messages uses
    hardcoded constants for message types. Replace these with a bunch
    of enums for clarity

 src/vncconnection.c |  118 ++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 83 insertions(+), 35 deletions(-)
---
diff --git a/src/vncconnection.c b/src/vncconnection.c
index 9f9db5c..f371f74 100644
--- a/src/vncconnection.c
+++ b/src/vncconnection.c
@@ -67,6 +67,46 @@ struct wait_queue
     struct coroutine *context;
 };
 
+typedef enum {
+    VNC_CONNECTION_SERVER_MESSAGE_FRAMEBUFFER_UPDATE = 0,
+    VNC_CONNECTION_SERVER_MESSAGE_SET_COLOR_MAP_ENTRIES = 1,
+    VNC_CONNECTION_SERVER_MESSAGE_BELL = 2,
+    VNC_CONNECTION_SERVER_MESSAGE_SERVER_CUT_TEXT = 3,
+    VNC_CONNECTION_SERVER_MESSAGE_QEMU = 255,
+} VncConnectionServerMessage;
+
+typedef enum {
+    VNC_CONNECTION_SERVER_MESSAGE_QEMU_AUDIO = 1,
+} VncConnectionServerMessageQEMU;
+
+typedef enum {
+    VNC_CONNECTION_SERVER_MESSAGE_QEMU_AUDIO_STOP = 0,
+    VNC_CONNECTION_SERVER_MESSAGE_QEMU_AUDIO_START = 1,
+    VNC_CONNECTION_SERVER_MESSAGE_QEMU_AUDIO_DATA = 2,
+} VncConnectionServerMessageQEMUAudio;
+
+
+typedef enum {
+    VNC_CONNECTION_CLIENT_MESSAGE_SET_PIXEL_FORMAT = 0,
+    VNC_CONNECTION_CLIENT_MESSAGE_SET_ENCODINGS = 2,
+    VNC_CONNECTION_CLIENT_MESSAGE_FRAMEBUFFER_UPDATE_REQUEST = 3,
+    VNC_CONNECTION_CLIENT_MESSAGE_KEY = 4,
+    VNC_CONNECTION_CLIENT_MESSAGE_POINTER = 5,
+    VNC_CONNECTION_CLIENT_MESSAGE_CUT_TEXT = 6,
+    VNC_CONNECTION_CLIENT_MESSAGE_QEMU = 255,
+} VncConnectionClientMessage;
+
+typedef enum {
+    VNC_CONNECTION_CLIENT_MESSAGE_QEMU_KEY = 0,
+    VNC_CONNECTION_CLIENT_MESSAGE_QEMU_AUDIO = 1,
+} VncConnectionClientMessageQEMU;
+
+typedef enum {
+    VNC_CONNECTION_CLIENT_MESSAGE_QEMU_AUDIO_ENABLE = 0,
+    VNC_CONNECTION_CLIENT_MESSAGE_QEMU_AUDIO_DISABLE = 1,
+    VNC_CONNECTION_CLIENT_MESSAGE_QEMU_AUDIO_SET_FORMAT = 2,
+} VncConnectionClientMessageQEMUAudio;
+
 
 typedef void vnc_connection_rich_cursor_blt_func(VncConnection *conn, guint8 *, guint8 *,
                                                  guint8 *, int, guint16, guint16);
@@ -1483,7 +1523,7 @@ gboolean vnc_connection_set_pixel_format(VncConnection *conn,
     VncConnectionPrivate *priv = conn->priv;
     guint8 pad[3] = {0};
 
-    vnc_connection_buffered_write_u8(conn, 0);
+    vnc_connection_buffered_write_u8(conn, VNC_CONNECTION_CLIENT_MESSAGE_SET_PIXEL_FORMAT);
     vnc_connection_buffered_write(conn, pad, 3);
 
     vnc_connection_buffered_write_u8(conn, fmt->bits_per_pixel);
@@ -1527,9 +1567,9 @@ static void vnc_connection_send_audio_format(VncConnection *conn)
 {
     VncConnectionPrivate *priv = conn->priv;
 
-    vnc_connection_buffered_write_u8(conn,  255);
-    vnc_connection_buffered_write_u8(conn,  1); /* VNC_CONNECTION_QEMU_AUDIO */
-    vnc_connection_buffered_write_u16(conn, 2); /* VNC_CONNECTION_QEMU_AUDIO_SET_FORMAT */
+    vnc_connection_buffered_write_u8(conn, VNC_CONNECTION_CLIENT_MESSAGE_QEMU);
+    vnc_connection_buffered_write_u8(conn, VNC_CONNECTION_CLIENT_MESSAGE_QEMU_AUDIO);
+    vnc_connection_buffered_write_u16(conn, VNC_CONNECTION_CLIENT_MESSAGE_QEMU_AUDIO_SET_FORMAT);
 
     vnc_connection_buffered_write_u8(conn,  priv->audio_format.format);
     vnc_connection_buffered_write_u8(conn,  priv->audio_format.nchannels);
@@ -1566,9 +1606,9 @@ gboolean vnc_connection_audio_enable(VncConnection *conn)
 
     if (priv->has_audio)
         {
-            vnc_connection_buffered_write_u8(conn,  255); /* QEMU message */
-            vnc_connection_buffered_write_u8(conn,  1);   /* VNC_CONNECTION_QEMU_AUDIO */
-            vnc_connection_buffered_write_u16(conn, 0);   /* VNC_CONNECTION_QEMU_AUDIO_ENABLE */
+            vnc_connection_buffered_write_u8(conn, VNC_CONNECTION_CLIENT_MESSAGE_QEMU);
+            vnc_connection_buffered_write_u8(conn, VNC_CONNECTION_CLIENT_MESSAGE_QEMU_AUDIO);
+            vnc_connection_buffered_write_u16(conn, VNC_CONNECTION_CLIENT_MESSAGE_QEMU_AUDIO_ENABLE);
             vnc_connection_buffered_flush(conn);
             priv->audio_enable_pending=FALSE;
         }
@@ -1584,9 +1624,9 @@ gboolean vnc_connection_audio_disable(VncConnection *conn)
 
     if (priv->has_audio)
         {
-            vnc_connection_buffered_write_u8(conn,  255); /* QEMU message */
-            vnc_connection_buffered_write_u8(conn,  1);   /* VNC_CONNECTION_QEMU_AUDIO */
-            vnc_connection_buffered_write_u16(conn, 1);  /* VNC_CONNECTION_QEMU_AUDIO_ENABLE */
+            vnc_connection_buffered_write_u8(conn, VNC_CONNECTION_CLIENT_MESSAGE_QEMU);
+            vnc_connection_buffered_write_u8(conn, VNC_CONNECTION_CLIENT_MESSAGE_QEMU_AUDIO);
+            vnc_connection_buffered_write_u16(conn, VNC_CONNECTION_CLIENT_MESSAGE_QEMU_AUDIO_DISABLE);
             vnc_connection_buffered_flush(conn);
             priv->audio_disable_pending=FALSE;
         }
@@ -1626,7 +1666,7 @@ gboolean vnc_connection_set_encodings(VncConnection *conn, int n_encoding, gint3
 
     priv->has_ext_key_event = FALSE;
     priv->has_audio = FALSE;
-    vnc_connection_buffered_write_u8(conn, 2);
+    vnc_connection_buffered_write_u8(conn, VNC_CONNECTION_CLIENT_MESSAGE_SET_ENCODINGS);
     vnc_connection_buffered_write(conn, pad, 1);
     vnc_connection_buffered_write_u16(conn, n_encoding - skip_zrle);
     for (i = 0; i < n_encoding; i++) {
@@ -1655,7 +1695,7 @@ gboolean vnc_connection_framebuffer_update_request(VncConnection *conn,
     priv->lastUpdateRequest.width = width;
     priv->lastUpdateRequest.height = height;
 
-    vnc_connection_buffered_write_u8(conn, 3);
+    vnc_connection_buffered_write_u8(conn, VNC_CONNECTION_CLIENT_MESSAGE_FRAMEBUFFER_UPDATE_REQUEST);
     vnc_connection_buffered_write_u8(conn, incremental ? 1 : 0);
     vnc_connection_buffered_write_u16(conn, x);
     vnc_connection_buffered_write_u16(conn, y);
@@ -1683,7 +1723,7 @@ vnc_connection_resend_framebuffer_update_request(VncConnection *conn)
               priv->lastUpdateRequest.height,
               (int)priv->lastUpdateRequest.incremental);
 
-    vnc_connection_write_u8(conn, 3);
+    vnc_connection_write_u8(conn, VNC_CONNECTION_CLIENT_MESSAGE_FRAMEBUFFER_UPDATE_REQUEST);
     vnc_connection_write_u8(conn, priv->lastUpdateRequest.incremental ? 1 : 0);
     vnc_connection_write_u16(conn, priv->lastUpdateRequest.x);
     vnc_connection_write_u16(conn, priv->lastUpdateRequest.y);
@@ -1703,13 +1743,13 @@ gboolean vnc_connection_key_event(VncConnection *conn, gboolean down_flag,
 
     VNC_DEBUG("Key event %d %d %d Extended: %d", key, scancode, down_flag, priv->has_ext_key_event);
     if (priv->has_ext_key_event) {
-        vnc_connection_buffered_write_u8(conn, 255);
-        vnc_connection_buffered_write_u8(conn, 0);
+        vnc_connection_buffered_write_u8(conn, VNC_CONNECTION_CLIENT_MESSAGE_QEMU);
+        vnc_connection_buffered_write_u8(conn, VNC_CONNECTION_CLIENT_MESSAGE_QEMU_KEY);
         vnc_connection_buffered_write_u16(conn, down_flag ? 1 : 0);
         vnc_connection_buffered_write_u32(conn, key);
         vnc_connection_buffered_write_u32(conn, scancode);
     } else {
-        vnc_connection_buffered_write_u8(conn, 4);
+        vnc_connection_buffered_write_u8(conn, VNC_CONNECTION_CLIENT_MESSAGE_KEY);
         vnc_connection_buffered_write_u8(conn, down_flag ? 1 : 0);
         vnc_connection_buffered_write(conn, pad, 2);
         vnc_connection_buffered_write_u32(conn, key);
@@ -1722,7 +1762,7 @@ gboolean vnc_connection_key_event(VncConnection *conn, gboolean down_flag,
 gboolean vnc_connection_pointer_event(VncConnection *conn, guint8 button_mask,
                                       guint16 x, guint16 y)
 {
-    vnc_connection_buffered_write_u8(conn, 5);
+    vnc_connection_buffered_write_u8(conn, VNC_CONNECTION_CLIENT_MESSAGE_POINTER);
     vnc_connection_buffered_write_u8(conn, button_mask);
     vnc_connection_buffered_write_u16(conn, x);
     vnc_connection_buffered_write_u16(conn, y);
@@ -1735,7 +1775,7 @@ gboolean vnc_connection_client_cut_text(VncConnection *conn,
 {
     guint8 pad[3] = {0};
 
-    vnc_connection_buffered_write_u8(conn, 6);
+    vnc_connection_buffered_write_u8(conn, VNC_CONNECTION_CLIENT_MESSAGE_CUT_TEXT);
     vnc_connection_buffered_write(conn, pad, 3);
     vnc_connection_buffered_write_u32(conn, length);
     vnc_connection_buffered_write(conn, data, length);
@@ -2640,6 +2680,8 @@ static void vnc_connection_pointer_type_change(VncConnection *conn, gboolean abs
     VncConnectionPrivate *priv = conn->priv;
     struct signal_data sigdata;
 
+    VNC_DEBUG("Pointer mode %s", absPointer ? "absolute" : "relative");
+
     if (priv->absPointer == absPointer)
         return;
     priv->absPointer = absPointer;
@@ -2762,6 +2804,7 @@ static void vnc_connection_ext_key_event(VncConnection *conn)
 {
     VncConnectionPrivate *priv = conn->priv;
 
+    VNC_DEBUG("Keyboard mode extended");
     priv->has_ext_key_event = TRUE;
 }
 
@@ -2855,6 +2898,7 @@ static gboolean vnc_connection_framebuffer_update(VncConnection *conn, gint32 et
         vnc_connection_resend_framebuffer_update_request(conn);
         break;
     case VNC_CONNECTION_ENCODING_AUDIO:
+        VNC_DEBUG("Audio encoding support");
         priv->has_audio=TRUE;
 
         if (priv->audio_disable_pending)
@@ -2898,7 +2942,11 @@ struct audio_action_data
 {
     VncConnection *conn;
     struct coroutine *caller;
-    int action;
+    enum {
+        VNC_AUDIO_PLAYBACK_STOP = 0,
+        VNC_AUDIO_PLAYBACK_START = 1,
+        VNC_AUDIO_PLAYBACK_DATA = 2,
+    } action;
 };
 
 static gboolean do_vnc_connection_audio_action(gpointer opaque)
@@ -2909,13 +2957,13 @@ static gboolean do_vnc_connection_audio_action(gpointer opaque)
     VNC_DEBUG("Audio action main context %d", data->action);
 
     switch (data->action) {
-    case 0:
+    case VNC_AUDIO_PLAYBACK_STOP:
         vnc_audio_playback_stop(priv->audio);
         break;
-    case 1:
+    case VNC_AUDIO_PLAYBACK_START:
         vnc_audio_playback_start(priv->audio, &priv->audio_format);
         break;
-    case 2:
+    case VNC_AUDIO_PLAYBACK_DATA:
         vnc_audio_playback_data(priv->audio, priv->audio_sample);
         break;
     default:
@@ -2975,7 +3023,7 @@ static gboolean vnc_connection_server_message(VncConnection *conn)
     }
 
     switch (msg) {
-    case 0: { /* FramebufferUpdate */
+    case VNC_CONNECTION_SERVER_MESSAGE_FRAMEBUFFER_UPDATE: {
         guint8 pad[1];
         guint16 n_rects;
         int i;
@@ -2996,7 +3044,7 @@ static gboolean vnc_connection_server_message(VncConnection *conn)
                 break;
         }
     }        break;
-    case 1: { /* SetColorMapEntries */
+    case VNC_CONNECTION_SERVER_MESSAGE_SET_COLOR_MAP_ENTRIES: {
         guint16 first_color;
         guint16 n_colors;
         guint8 pad[1];
@@ -3026,10 +3074,10 @@ static gboolean vnc_connection_server_message(VncConnection *conn)
         vnc_framebuffer_set_color_map(priv->fb, map);
         vnc_color_map_free(map);
     }        break;
-    case 2: /* Bell */
+    case VNC_CONNECTION_SERVER_MESSAGE_BELL:
         vnc_connection_bell(conn);
         break;
-    case 3: { /* ServerCutText */
+    case VNC_CONNECTION_SERVER_MESSAGE_SERVER_CUT_TEXT: {
         guint8 pad[3];
         guint32 n_text;
         char *data;
@@ -3055,7 +3103,7 @@ static gboolean vnc_connection_server_message(VncConnection *conn)
         vnc_connection_server_cut_text(conn, data, n_text);
         g_free(data);
     }        break;
-    case 255: { /* QEMU Messages */
+    case VNC_CONNECTION_SERVER_MESSAGE_QEMU: {
         guint8  n_type;
 
         n_type = vnc_connection_read_u8(conn);
@@ -3064,13 +3112,13 @@ static gboolean vnc_connection_server_message(VncConnection *conn)
             break;
 
         switch (n_type) {
-        case 1: { /* QEMU audio */
+        case VNC_CONNECTION_SERVER_MESSAGE_QEMU_AUDIO: {
             guint16 n_subtype;
             guint32 n_length;
 
             n_subtype = vnc_connection_read_u16(conn);
             switch (n_subtype) {
-            case 2:
+            case VNC_CONNECTION_SERVER_MESSAGE_QEMU_AUDIO_DATA:
                 n_length = vnc_connection_read_u32(conn);
                 if (n_length > (1024*1024)) {
                     VNC_DEBUG("Received audio message that is too large %u", n_length);
@@ -3092,7 +3140,7 @@ static gboolean vnc_connection_server_message(VncConnection *conn)
                             priv->audio_sample->capacity,
                             priv->audio_sample->length,
                             n_length);
-                    vnc_connection_audio_action(conn, 2);
+                    vnc_connection_audio_action(conn, VNC_AUDIO_PLAYBACK_DATA);
                     vnc_audio_sample_free(priv->audio_sample);
                     priv->audio_sample = NULL;
                 }
@@ -3108,21 +3156,21 @@ static gboolean vnc_connection_server_message(VncConnection *conn)
                                     n_length);
                 priv->audio_sample->length += n_length;
                 break;
-            case 1:
+            case VNC_CONNECTION_SERVER_MESSAGE_QEMU_AUDIO_START:
                 if (priv->audio)
-                    vnc_connection_audio_action(conn, 1);
+                    vnc_connection_audio_action(conn, VNC_AUDIO_PLAYBACK_START);
                 else
                     priv->has_error = TRUE;
                 break;
-            case 0:
+            case VNC_CONNECTION_SERVER_MESSAGE_QEMU_AUDIO_STOP:
                 if (priv->audio) {
                     if (priv->audio_sample) {
                         g_source_remove(priv->audio_timer);
-                        vnc_connection_audio_action(conn, 2);
+                        vnc_connection_audio_action(conn, VNC_AUDIO_PLAYBACK_DATA);
                         vnc_audio_sample_free(priv->audio_sample);
                         priv->audio_sample = NULL;
                     }
-                    vnc_connection_audio_action(conn, 0);
+                    vnc_connection_audio_action(conn, VNC_AUDIO_PLAYBACK_STOP);
                 } else {
                     priv->has_error = TRUE;
                 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]