[PATCH] input: switch internal event types to enums.

Peter Hutterer peter.hutterer at who-t.net
Tue Jul 28 20:45:32 PDT 2009


Use enum EventType instead of ints. This requires a load of default
cases in various switch statements to silence compiler warnings.

Reported-by: Aaron Plattner

Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
 Xi/exevents.c      |    6 ++++++
 dix/eventconvert.c |   11 ++++++++++-
 include/eventstr.h |   10 +++++-----
 3 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/Xi/exevents.c b/Xi/exevents.c
index 5c43266..4773c49 100644
--- a/Xi/exevents.c
+++ b/Xi/exevents.c
@@ -131,6 +131,8 @@ IsPointerEvent(InternalEvent* event)
         case ET_Motion:
             /* XXX: enter/leave ?? */
             return TRUE;
+        default:
+            break;
     }
     return FALSE;
 }
@@ -1066,6 +1068,8 @@ ProcessOtherEvent(InternalEvent *ev, DeviceIntPtr device)
             event->corestate = state;
             key = event->detail.key;
             break;
+        default:
+            break;
     }
 
 #if 0
@@ -1120,6 +1124,8 @@ ProcessOtherEvent(InternalEvent *ev, DeviceIntPtr device)
                  device->deviceGrab.grab->type == DeviceButtonPress ||
                  device->deviceGrab.grab->type == XI_ButtonPress))
                 deactivateDeviceGrab = TRUE;
+        default:
+            break;
     }
 
 
diff --git a/dix/eventconvert.c b/dix/eventconvert.c
index 943178e..866fa29 100644
--- a/dix/eventconvert.c
+++ b/dix/eventconvert.c
@@ -147,6 +147,8 @@ EventToXI(InternalEvent *ev, xEvent **xi, int *count)
             *count = 0;
             *xi = NULL;
             return BadMatch;
+        default:
+            break;
     }
 
     ErrorF("[dix] EventToXI: Not implemented for %d \n", ev->any.type);
@@ -196,7 +198,8 @@ EventToXI2(InternalEvent *ev, xEvent **xi)
         case ET_RawButtonRelease:
         case ET_RawMotion:
             return eventToRawEvent((RawDeviceEvent*)ev, xi);
-
+        default:
+            break;
     }
 
     ErrorF("[dix] EventToXI2: Not implemented for %d \n", ev->any.type);
@@ -247,6 +250,8 @@ eventToKeyButtonPointer(DeviceEvent *ev, xEvent **xi, int *count)
         case ET_KeyRelease:    kbp->type = DeviceKeyRelease;    break;
         case ET_ProximityIn:   kbp->type = ProximityIn;         break;
         case ET_ProximityOut:  kbp->type = ProximityOut;        break;
+        default:
+            break;
     }
 
     if (num_events > 1)
@@ -518,6 +523,8 @@ GetCoreType(InternalEvent *event)
         case ET_ButtonRelease:  coretype = ButtonRelease; break;
         case ET_KeyPress:       coretype = KeyPress;      break;
         case ET_KeyRelease:     coretype = KeyRelease;    break;
+        default:
+            break;
     }
     return coretype;
 }
@@ -539,6 +546,8 @@ GetXIType(InternalEvent *event)
         case ET_KeyRelease:     xitype = DeviceKeyRelease;    break;
         case ET_ProximityIn:    xitype = ProximityIn;         break;
         case ET_ProximityOut:   xitype = ProximityOut;        break;
+        default:
+            break;
     }
     return xitype;
 }
diff --git a/include/eventstr.h b/include/eventstr.h
index e39beb9..06a57e3 100644
--- a/include/eventstr.h
+++ b/include/eventstr.h
@@ -83,7 +83,7 @@ enum EventType {
 struct _DeviceEvent
 {
     unsigned char header; /**< Always ET_Internal */
-    int type;             /**< One of EventType */
+    enum EventType type;  /**< One of EventType */
     int length;           /**< Length in bytes */
     Time time;            /**< Time in ms */
     int deviceid;         /**< Device to post this event for */
@@ -136,7 +136,7 @@ struct _DeviceEvent
 struct _DeviceChangedEvent
 {
     unsigned char header; /**< Always ET_Internal */
-    int type;             /**< ET_DeviceChanged */
+    enum EventType type;  /**< ET_DeviceChanged */
     int length;           /**< Length in bytes */
     Time time;            /**< Time in ms */
     int deviceid;         /**< Device whose capabilities have changed */
@@ -177,7 +177,7 @@ struct _DeviceChangedEvent
 struct _DGAEvent
 {
     unsigned char header; /**<  Always ET_Internal */
-    int type;             /**<  ET_DGAEvent */
+    enum EventType type;  /**<  ET_DGAEvent */
     int length;           /**<  Length in bytes */
     Time time;            /**<  Time in ms */
     int subtype;          /**<  KeyPress, KeyRelease, ButtonPress,
@@ -196,7 +196,7 @@ struct _DGAEvent
 struct _RawDeviceEvent
 {
     unsigned char header; /**<  Always ET_Internal */
-    int type;             /**<  ET_Raw */
+    enum EventType type;  /**<  ET_Raw */
     int length;           /**<  Length in bytes */
     Time time;            /**<  Time in ms */
     int deviceid;         /**< Device to post this event for */
@@ -221,7 +221,7 @@ struct _RawDeviceEvent
 union _InternalEvent {
         struct {
             unsigned char header; /**< Always ET_Internal */
-            int type;             /**< One of ET_* */
+            enum EventType type;  /**< One of ET_* */
             int length;           /**< Length in bytes */
             Time time;            /**< Time in ms. */
         } any;
-- 
1.6.3.rc1.2.g0164.dirty


Cheers,
  Peter


More information about the xorg-devel mailing list