diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2021-11-09 09:17:16 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2021-11-09 09:46:16 +1000 |
commit | d03f9b6616d52f77ffd939642cd93e883dedc530 (patch) | |
tree | b8adbb20fc8a3414ec0d4653595710d8eb6b6228 | |
parent | fdba5a41dd3622eeab67f36063ecb15449b5586e (diff) | |
download | libevdev-d03f9b6616d52f77ffd939642cd93e883dedc530.tar.gz |
tools: add a helper tool to list all currently known codes
A non-installed tool to make it easy to check if newly added codes are
indeed supported correctly.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r-- | meson.build | 5 | ||||
-rw-r--r-- | tools/Makefile.am | 5 | ||||
-rw-r--r-- | tools/libevdev-list-codes.c | 47 |
3 files changed, 56 insertions, 1 deletions
diff --git a/meson.build b/meson.build index a6ba48e..c7981b9 100644 --- a/meson.build +++ b/meson.build @@ -109,6 +109,11 @@ executable('libevdev-events', include_directories: [includes_include], dependencies: dep_libevdev, install: false) +executable('libevdev-list-codes', + sources: ['tools/libevdev-list-codes.c'], + include_directories: [includes_include], + dependencies: dep_libevdev, + install: false) executable('touchpad-edge-detector', sources: ['tools/touchpad-edge-detector.c'], include_directories: [includes_include], diff --git a/tools/Makefile.am b/tools/Makefile.am index 86222f7..83d6700 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -1,4 +1,4 @@ -noinst_PROGRAMS = libevdev-events +noinst_PROGRAMS = libevdev-events libevdev-list-codes bin_PROGRAMS = \ touchpad-edge-detector \ mouse-dpi-tool \ @@ -10,6 +10,9 @@ libevdev_ldadd = $(top_builddir)/libevdev/libevdev.la libevdev_events_SOURCES = libevdev-events.c libevdev_events_LDADD = $(libevdev_ldadd) +libevdev_list_codes_SOURCES = libevdev-list-codes.c +libevdev_list_codes_LDADD = $(libevdev_ldadd) + touchpad_edge_detector_SOURCES = touchpad-edge-detector.c touchpad_edge_detector_LDADD = $(libevdev_ldadd) diff --git a/tools/libevdev-list-codes.c b/tools/libevdev-list-codes.c new file mode 100644 index 0000000..8d4f7c2 --- /dev/null +++ b/tools/libevdev-list-codes.c @@ -0,0 +1,47 @@ +// SPDX-License-Identifier: MIT +/* + * Copyright © 2021 Red Hat, Inc. + */ + +/* Lists all event types and codes currently known by libevdev. */ + +#include "config.h" + +#include <stdio.h> +#include <linux/input.h> +#include "libevdev/libevdev.h" + +static void +list_event_codes(unsigned int type, unsigned int max) +{ + const char *typestr = libevdev_event_type_get_name(type); + + if (!typestr) + return; + + printf("- %s:\n", typestr); + + for (unsigned int code = 0; code <= max; code++) { + const char *str = libevdev_event_code_get_name(type, code); + + if (!str) + continue; + + printf(" %d: %s\n", code, str); + } +} + +int +main (int argc, char **argv) +{ + printf("codes:\n"); + for (unsigned int type = 0; type <= EV_MAX; type++) { + int max = libevdev_event_type_get_max(type); + if (max == -1) + continue; + + list_event_codes(type, (unsigned int)max); + } + + return 0; +} |