From 57d2c52f15dc93f836688279e4bba9bcf8012e65 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Fri, 14 Dec 2012 15:05:17 -0200 Subject: [PATCH] keytable: Add handler for EV_REL type Those are typically used on mouse events. Signed-off-by: Mauro Carvalho Chehab --- utils/keytable/Makefile.am | 6 ++++++ utils/keytable/keytable.c | 16 ++++++++++++++++ utils/keytable/parse.h | 14 ++++++++++++++ 3 files changed, 36 insertions(+) diff --git a/utils/keytable/Makefile.am b/utils/keytable/Makefile.am index a676b3a..52b1e07 100644 --- a/utils/keytable/Makefile.am +++ b/utils/keytable/Makefile.am @@ -30,6 +30,12 @@ sync-with-kernel: >> $(srcdir)/parse.h @printf "\t{ NULL, 0}\n};\n" >> $(srcdir)/parse.h + @printf "struct parse_event rel_events[] = {\n" >> $(srcdir)/parse.h + @more $(KERNEL_DIR)/include/uapi/linux/input.h | perl -n \ + -e 'if (m/^\#define\s+(REL_[^\s]+)\s+(0x[\d\w]+|[\d]+)/) ' \ + -e '{ printf "\t{\"%s\", %s},\n",$$1,$$2; }' \ + >> $(srcdir)/parse.h + @printf "\t{ NULL, 0}\n};\n" >> $(srcdir)/parse.h @printf "struct parse_event abs_events[] = {\n" >> $(srcdir)/parse.h @more $(KERNEL_DIR)/include/uapi/linux/input.h | perl -n \ diff --git a/utils/keytable/keytable.c b/utils/keytable/keytable.c index 8321a25..16bdfbb 100644 --- a/utils/keytable/keytable.c +++ b/utils/keytable/keytable.c @@ -1293,6 +1293,22 @@ static void test_event(int fd) printf(" value: 0x%04x\n", ev[i].value); break; } + case EV_REL: { + char *name = ""; + + printf("%ld.%06ld: event rel ", + ev[i].time.tv_sec, ev[i].time.tv_usec); + + for (p = rel_events; p->name != NULL; p++) { + if (p->value == ev[i].code) { + name = p->name; + break; + } + } + printf("%s (0x%04x)", name, ev[i].code); + printf(" value: 0x%04x\n", ev[i].value); + break; + } case EV_REP: printf("%ld.%06ld: event repeat: %d\n", ev[i].time.tv_sec, ev[i].time.tv_usec, diff --git a/utils/keytable/parse.h b/utils/keytable/parse.h index 9a7712d..1a1d01a 100644 --- a/utils/keytable/parse.h +++ b/utils/keytable/parse.h @@ -508,6 +508,20 @@ struct parse_event key_events[] = { {"KEY_MAX", 0x2ff}, { NULL, 0} }; +struct parse_event rel_events[] = { + {"REL_X", 0x00}, + {"REL_Y", 0x01}, + {"REL_Z", 0x02}, + {"REL_RX", 0x03}, + {"REL_RY", 0x04}, + {"REL_RZ", 0x05}, + {"REL_HWHEEL", 0x06}, + {"REL_DIAL", 0x07}, + {"REL_WHEEL", 0x08}, + {"REL_MISC", 0x09}, + {"REL_MAX", 0x0f}, + { NULL, 0} +}; struct parse_event abs_events[] = { {"ABS_X", 0x00}, {"ABS_Y", 0x01}, -- 2.7.4