Add two helper functions to check event type/code

These aren't really that useful since they're just one or two lines in
code, but it saves callers from accidentally misplacing braces, etc.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Peter Hutterer 2013-07-04 10:07:44 +10:00
parent bafd498b67
commit e6f85ee1f1
2 changed files with 57 additions and 0 deletions

View file

@ -928,6 +928,21 @@ libevdev_grab(struct libevdev *dev, int grab)
return rc < 0 ? -errno : 0;
}
int
libevdev_is_event_type(const struct input_event *ev, unsigned int type)
{
return type < EV_MAX && ev->type == type;
}
int
libevdev_is_event_code(const struct input_event *ev, unsigned int type, unsigned int code)
{
return type < EV_MAX &&
ev->type == type &&
(type == EV_SYN || code <= libevdev_get_event_type_max(type)) &&
ev->code == code;
}
const char*
libevdev_get_event_type_name(unsigned int type)
{

View file

@ -867,6 +867,48 @@ int libevdev_disable_event_code(struct libevdev *dev, unsigned int type, unsigne
*/
int libevdev_kernel_set_abs_value(struct libevdev *dev, unsigned int code, const struct input_absinfo *abs);
/**
* @ingroup misc
*
* Helper function to check if an event is of a specific type. This is
* virtually the same as:
*
* ev->type == type
*
* with the exception that some sanity checks are performed to ensure type
* is valid.
*
* @param ev The input event to check
* @param type Input event type to compare the event against (EV_REL, EV_ABS,
* etc.)
*
* @return 1 if the event type matches the given type, 0 otherwise (or if
* type is invalid)
*/
int libevdev_is_event_type(const struct input_event *ev, unsigned int type);
/**
* @ingroup misc
*
* Helper function to check if an event is of a specific type and code. This
* is virtually the same as:
*
* ev->type == type && ev->code == code
*
* with the exception that some sanity checks are performed to ensure type and
* code are valid.
*
* @param ev The input event to check
* @param type Input event type to compare the event against (EV_REL, EV_ABS,
* etc.)
* @param code Input event code to compare the event against (ABS_X, REL_X,
* etc.)
*
* @return 1 if the event type matches the given type and code, 0 otherwise
* (or if type/code are invalid)
*/
int libevdev_is_event_code(const struct input_event *ev, unsigned int type, unsigned int code);
/**
* @ingroup misc
*