diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2022-02-03 10:12:43 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2022-02-03 14:39:54 +1000 |
commit | 771c43776e62d3f824753e123f936f3c0ef4c650 (patch) | |
tree | d8b0f8053ed75607841f011252c43ca39be366e4 | |
parent | 6099e5f22b949d472f3f30282f5bdf6d84ef3073 (diff) | |
download | xf86-input-wacom-771c43776e62d3f824753e123f936f3c0ef4c650.tar.gz |
wacom-record: print the mask of available values
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r-- | src/gwacom/wacom-device.h | 2 | ||||
-rw-r--r-- | tools/wacom-record.c | 29 |
2 files changed, 31 insertions, 0 deletions
diff --git a/src/gwacom/wacom-device.h b/src/gwacom/wacom-device.h index 2108661..3ac3245 100644 --- a/src/gwacom/wacom-device.h +++ b/src/gwacom/wacom-device.h @@ -100,6 +100,8 @@ enum WacomEventAxis { WACOM_WHEEL = (1 << 9), WACOM_RING = (1 << 10), WACOM_RING2 = (1 << 11), + + _WACOM_EVENT_AXIS_LAST = WACOM_RING2, }; /* The pointer argument to all the event signals. If the mask is set for diff --git a/tools/wacom-record.c b/tools/wacom-record.c index 7562351..d096653 100644 --- a/tools/wacom-record.c +++ b/tools/wacom-record.c @@ -58,6 +58,35 @@ static void debug_message(WacomDevice *device, int debug_level, const char *func static inline void print_axes(const WacomEventData *data) { + char buf[1024] = {0}; + const char *prefix = ""; + uint32_t mask = data->mask; + + for (uint32_t flag = 0x1; flag <= _WACOM_EVENT_AXIS_LAST; flag <<= 1) { + const char *name = "unknown axis"; + if ((mask & flag) == 0) + continue; + + switch (flag) { + case WACOM_X: name = "x"; break; + case WACOM_Y: name = "y"; break; + case WACOM_PRESSURE: name = "pressure"; break; + case WACOM_TILT_X: name = "tilt-x"; break; + case WACOM_TILT_Y: name = "tilt-y"; break; + case WACOM_ROTATION: name = "rotation"; break; + case WACOM_THROTTLE: name = "throttle"; break; + case WACOM_WHEEL: name = "wheel"; break; + case WACOM_RING: name = "ring"; break; + case WACOM_RING2: name = "ring"; break; + } + + g_assert_cmpint(strlen(buf) + strlen(prefix) + strlen(name), <, sizeof(buf)); + + snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "%s\"%s\"", prefix, name); + prefix = ", "; + } + + printf(" mask: [ %s ]\n", buf); printf(" axes: { x: %5d, y: %5d, pressure: %4d, tilt: [%3d,%3d], rotation: %3d, throttle: %3d, wheel: %3d, rings: [%3d, %3d] }\n", data->x, data->y, (data->mask & WACOM_PRESSURE) ? data->pressure : 0, |