summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2009-02-01 09:57:27 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2009-02-23 17:52:38 +1000
commit269d4d9f2e86fde8c6a28ef0293fb0e44b577886 (patch)
tree93046415968614892a06e0af6e362edf6d499026
parent656491921e17b2371057041f4551ad6165067551 (diff)
dix: add GetCoreType and GetXIType.
Convert from an InternalEvent type to the matching core/XI type. Currently only for a few events, those we actually need in the server. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--dix/eventconvert.c40
-rw-r--r--include/eventconvert.h2
2 files changed, 42 insertions, 0 deletions
diff --git a/dix/eventconvert.c b/dix/eventconvert.c
index c3658112d..2ade378f8 100644
--- a/dix/eventconvert.c
+++ b/dix/eventconvert.c
@@ -288,3 +288,43 @@ eventToClassesChanged(DeviceChangedEvent *ev, EventListPtr events, int *count)
*count = 1;
return Success;
}
+
+/**
+ * Return the corresponding core type for the given @event or 0 if no core
+ * equivalent exists.
+ */
+int
+GetCoreType(InternalEvent *event)
+{
+ int coretype = 0;
+ switch(event->u.any.type)
+ {
+ case ET_Motion: coretype = MotionNotify; break;
+ case ET_ButtonPress: coretype = ButtonPress; break;
+ case ET_ButtonRelease: coretype = ButtonRelease; break;
+ case ET_KeyPress: coretype = KeyPress; break;
+ case ET_KeyRelease: coretype = KeyRelease; break;
+ }
+ return coretype;
+}
+
+/**
+ * Return the corresponding XI 1.x type for the given @event or 0 if no
+ * equivalent exists.
+ */
+int
+GetXIType(InternalEvent *event)
+{
+ int xitype = 0;
+ switch(event->u.any.type)
+ {
+ case ET_Motion: xitype = DeviceMotionNotify; break;
+ case ET_ButtonPress: xitype = DeviceButtonPress; break;
+ case ET_ButtonRelease: xitype = DeviceButtonRelease; break;
+ case ET_KeyPress: xitype = DeviceKeyPress; break;
+ case ET_KeyRelease: xitype = DeviceKeyRelease; break;
+ case ET_ProximityIn: xitype = ProximityIn; break;
+ case ET_ProximityOut: xitype = ProximityOut; break;
+ }
+ return xitype;
+}
diff --git a/include/eventconvert.h b/include/eventconvert.h
index 244358261..846383145 100644
--- a/include/eventconvert.h
+++ b/include/eventconvert.h
@@ -30,5 +30,7 @@
_X_INTERNAL int EventToCore(InternalEvent *event, xEvent *core);
_X_INTERNAL int EventToXI(InternalEvent *ev, EventListPtr xi, int *count);
+_X_INTERNAL int GetCoreType(InternalEvent* ev);
+_X_INTERNAL int GetXIType(InternalEvent* ev);
#endif /* _EVENTCONVERT_H_ */