diff options
Diffstat (limited to 'tools/libevdev-list-codes.c')
-rw-r--r-- | tools/libevdev-list-codes.c | 47 |
1 files changed, 47 insertions, 0 deletions
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; +} |