| summaryrefslogtreecommitdiff |
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-01-03 19:59:43 +0100 |
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-01-03 19:59:43 +0100 |
| commit | 0c68e544b113f0493b9b80511c26c1e4584bd1e7 (patch) | |
| tree | 37bd18d5abf5d8b347fed778c5479ef1c142a8a6 /src/config | |
| parent | a4841776b6e1751232d46482731836a7c17b896f (diff) | |
...
Diffstat (limited to 'src/config')
| -rw-r--r-- | src/config/parameters/compatibility.c | 50 | ||||
| -rw-r--r-- | src/config/parameters/parameters_accessors.c | 10 |
2 files changed, 60 insertions, 0 deletions
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 <libevdev/libevdev.h> + +/**** RELABSD *****************************************************************/ +#include <relabsd/debug.h> + +#include <relabsd/config/parameters.h> + +#include <relabsd/device/axis.h> + +/******************************************************************************/ +/**** 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; +} diff --git a/src/config/parameters/parameters_accessors.c b/src/config/parameters/parameters_accessors.c index e1fd805..bd6624c 100644 --- a/src/config/parameters/parameters_accessors.c +++ b/src/config/parameters/parameters_accessors.c @@ -62,3 +62,13 @@ enum relabsd_parameters_run_mode relabsd_parameters_get_execution_mode { return parameters->mode; } + +struct relabsd_axis * relabsd_parameters_get_axis +( + const enum relabsd_axis_name i, + const struct relabsd_parameters parameters [const restrict static 1] +) +{ + return (parameters->axes + i); +} + |


