| 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; +   } +} | 


