diff --git a/libevdev/libevdev.c b/libevdev/libevdev.c index 362e0ff..7e292f6 100644 --- a/libevdev/libevdev.c +++ b/libevdev/libevdev.c @@ -929,3 +929,12 @@ libevdev_get_input_prop_name(unsigned int prop) return input_prop_map[prop]; } + +int +libevdev_get_event_type_max(unsigned int type) +{ + if (type > EV_MAX) + return -1; + + return ev_max[type]; +} diff --git a/libevdev/libevdev.h b/libevdev/libevdev.h index 49c34d9..9fd16d8 100644 --- a/libevdev/libevdev.h +++ b/libevdev/libevdev.h @@ -527,4 +527,13 @@ const char * libevdev_get_event_code_name(unsigned int type, unsigned int code); */ const char * libevdev_get_input_prop_name(unsigned int prop); +/** + * @return The max value defined for the given event type, e.g. ABS_MAX for a type of EV_ABS, or -1 + * for an invalid type. + * + * @note The max value is compiled into libevdev. If the kernel changes the + * max value, libevdev will not automatically pick these up. + */ +int libevdev_get_event_type_max(unsigned int type); + #endif /* libevdev_H */