summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2021-11-09 09:17:16 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2021-11-09 09:46:16 +1000
commitd03f9b6616d52f77ffd939642cd93e883dedc530 (patch)
treeb8adbb20fc8a3414ec0d4653595710d8eb6b6228
parentfdba5a41dd3622eeab67f36063ecb15449b5586e (diff)
downloadlibevdev-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.build5
-rw-r--r--tools/Makefile.am5
-rw-r--r--tools/libevdev-list-codes.c47
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;
+}