Those are typically used on mouse events.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
>> $(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 \
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,
{"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},