| summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/axis.c')
| -rw-r--r-- | src/axis.c | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/src/axis.c b/src/axis.c new file mode 100644 index 0000000..1ba09f0 --- /dev/null +++ b/src/axis.c @@ -0,0 +1,99 @@ +#include <libevdev/libevdev.h> + +#include "pervasive.h" + +#include "axis.h" + +enum relabsd_axis relabsd_axis_name_to_enum (char * const name) +{ + if (_IS_PREFIX("X", name)) + { + return RELABSD_X; + } + else if (_IS_PREFIX("Y", name)) + { + return RELABSD_Y; + } + else if (_IS_PREFIX("Z", name)) + { + return RELABSD_Z; + } + else if (_IS_PREFIX("RX", name)) + { + return RELABSD_RX; + } + else if (_IS_PREFIX("RY", name)) + { + return RELABSD_RY; + } + else if (_IS_PREFIX("RZ", name)) + { + return RELABSD_RZ; + } + + return RELABSD_UNKNOWN; +} + +char * relabsd_axis_enum_to_name (enum relabsd_axis const e) +{ + switch (e) + { + case RELABSD_X: + return "X"; + + case RELABSD_Y: + return "Y"; + + case RELABSD_Z: + return "Z"; + + case RELABSD_RX: + return "RX"; + + case RELABSD_RY: + return "RY"; + + case RELABSD_RZ: + return "RZ"; + + case RELABSD_UNKNOWN: + return "??"; + } +} + +enum relabsd_axis relabsd_axis_convert_evdev_rel +( + unsigned int const rel_code, + unsigned int * const abs_code +) +{ + switch (rel_code) + { + case REL_X: + *abs_code = ABS_X; + return RELABSD_X; + + case REL_Y: + *abs_code = ABS_Y; + return RELABSD_Y; + + case REL_Z: + *abs_code = ABS_Z; + return RELABSD_Z; + + case REL_RX: + *abs_code = ABS_RX; + return RELABSD_RX; + + case REL_RY: + *abs_code = ABS_RY; + return RELABSD_RY; + + case REL_RZ: + *abs_code = ABS_RZ; + return RELABSD_RZ; + + default: + return RELABSD_UNKNOWN; + } +} |


