From 0c68e544b113f0493b9b80511c26c1e4584bd1e7 Mon Sep 17 00:00:00 2001 From: Nathanael Sensfelder Date: Fri, 3 Jan 2020 19:59:43 +0100 Subject: ... --- src/config/parameters/compatibility.c | 50 +++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/config/parameters/compatibility.c (limited to 'src/config/parameters/compatibility.c') diff --git a/src/config/parameters/compatibility.c b/src/config/parameters/compatibility.c new file mode 100644 index 0000000..cc65c7f --- /dev/null +++ b/src/config/parameters/compatibility.c @@ -0,0 +1,50 @@ +/**** LIBEVDEV ****************************************************************/ +#include + +/**** RELABSD *****************************************************************/ +#include + +#include + +#include + +/******************************************************************************/ +/**** LOCAL FUNCTIONS *********************************************************/ +/******************************************************************************/ + +/******************************************************************************/ +/**** EXPORTED FUNCTIONS ******************************************************/ +/******************************************************************************/ +int relabsd_parameters_are_compatible_with +( + const struct libevdev * const restrict libevdev, + const struct relabsd_parameters parameters [const restrict static 1] +) +{ + int i, device_is_valid; + unsigned int rel_code; + + device_is_valid = 1; + + for (i = 0; i < RELABSD_AXIS_VALID_AXES_COUNT; ++i) + { + if (relabsd_axis_is_enabled(parameters->axes + i)) + { + rel_code = relabsd_axis_name_to_evdev_rel((enum relabsd_axis_name) i); + + if (!libevdev_has_event_code(libevdev, EV_REL, rel_code)) + { + RELABSD_ERROR + ( + "Input device has no relative %s axis, yet the configuration " + "file asks to convert it.", + relabsd_axis_name_to_string((enum relabsd_axis_name) i) + ); + + device_is_valid = 0; + } + } + } + + return device_is_valid; +} -- cgit v1.2.3-70-g09d2