From 70aac046bb4fb0028fcf018ae72bf29acfe6abac Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 10 Mar 2009 15:41:15 +1000 Subject: [PATCH] Register for raw events --- src/test_xi2.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/test_xi2.c b/src/test_xi2.c index 4193c09..920e77c 100644 --- a/src/test_xi2.c +++ b/src/test_xi2.c @@ -24,6 +24,7 @@ #include "xinput.h" +#include extern void print_classes_xi2(Display*, XIAnyClassInfo **classes, int num_classes); @@ -113,6 +114,22 @@ static void print_hierarchychangedevent(XIDeviceHierarchyEvent *event) } } +static void print_rawevent(XIRawDeviceEvent *event) +{ + int i; + double *val, *raw_val; + + printf(" device: %d\n", event->deviceid); + printf(" detail: %d\n", event->detail); + printf(" valuators:\n"); + + val = event->valuators->values; + raw_val = event->raw_values; + for (i = 0; i < event->valuators->mask_len * 8; i++) + if (BitIsOn(event->valuators->mask, i)) + printf(" %2d: %.2f (%.2f)\n", i, *val++, *raw_val++); + printf("\n"); +} int test_xi2(Display *display, @@ -139,6 +156,12 @@ test_xi2(Display *display, SetBit(mask.mask, XI_DeviceChanged); SetBit(mask.mask, XI_HierarchyChanged); XISelectEvent(display, win, &mask, 1); + + mask.deviceid = AllMasterDevices; + memset(mask.mask, 0, 2); + SetBit(mask.mask, XI_RawEvent); + XISelectEvent(display, DefaultRootWindow(display), &mask, 1); + free(mask.mask); while(1) @@ -159,6 +182,9 @@ test_xi2(Display *display, case XI_HierarchyChanged: print_hierarchychangedevent((XIDeviceHierarchyEvent*)event); break; + case XI_RawEvent: + print_rawevent((XIRawDeviceEvent*)event); + break; default: print_deviceevent(event); break; -- 2.56.0