From 6ca39654bfc65eee45cb38cbc53ce838d1f656a0 Mon Sep 17 00:00:00 2001 From: Nathanael Sensfelder Date: Thu, 23 Jul 2020 20:33:40 +0200 Subject: Trying out axis renaming... --- src/device/axis/axis.c | 10 ++++++++++ src/device/axis/axis_name.c | 41 +++++++++++++++++++++++++++++++++++++++++ src/device/axis/axis_option.c | 19 +++++++++++++++++++ 3 files changed, 70 insertions(+) (limited to 'src/device/axis') diff --git a/src/device/axis/axis.c b/src/device/axis/axis.c index e854e37..1cdb856 100644 --- a/src/device/axis/axis.c +++ b/src/device/axis/axis.c @@ -20,6 +20,8 @@ void relabsd_axis_initialize ) { (void) memset(axis, 0, sizeof(struct relabsd_axis)); + + axis->convert_to = RELABSD_UNKNOWN; } void relabsd_axis_to_absinfo @@ -68,3 +70,11 @@ void relabsd_axis_set_attributes_are_dirty { axis->attributes_were_modified = val; } + +enum relabsd_axis_name relabsd_axis_get_convert_to +( + const struct relabsd_axis axis [const restrict static 1] +) +{ + return axis->convert_to; +} diff --git a/src/device/axis/axis_name.c b/src/device/axis/axis_name.c index c18a28f..1ac0715 100644 --- a/src/device/axis/axis_name.c +++ b/src/device/axis/axis_name.c @@ -56,6 +56,47 @@ enum relabsd_axis_name relabsd_axis_parse_name return RELABSD_UNKNOWN; } +enum relabsd_axis_name relabsd_axis_parse_name_from_prefix +( + const char name [const restrict static 1] +) +{ + if (RELABSD_IS_PREFIX("X", name)) + { + return RELABSD_X; + } + else if (RELABSD_IS_PREFIX("Y", name)) + { + return RELABSD_Y; + } + else if (RELABSD_IS_PREFIX("Z", name)) + { + return RELABSD_Z; + } + else if (RELABSD_IS_PREFIX("RX", name)) + { + return RELABSD_RX; + } + else if (RELABSD_IS_PREFIX("RY", name)) + { + return RELABSD_RY; + } + else if (RELABSD_IS_PREFIX("RZ", name)) + { + return RELABSD_RZ; + } + else if (RELABSD_IS_PREFIX("WL", name)) + { + return RELABSD_WHEEL; + } + else if (RELABSD_IS_PREFIX("MC", name)) + { + return RELABSD_MISC; + } + + return RELABSD_UNKNOWN; +} + const char * relabsd_axis_name_to_string (const enum relabsd_axis_name e) { switch (e) diff --git a/src/device/axis/axis_option.c b/src/device/axis/axis_option.c index 1d68b78..8e52fe1 100644 --- a/src/device/axis/axis_option.c +++ b/src/device/axis/axis_option.c @@ -57,6 +57,25 @@ int relabsd_axis_enable_option_from_name ); } } + else if (RELABSD_IS_PREFIX("convert_to=", option_name)) + { + axis->convert_to = + relabsd_axis_parse_name_from_prefix + ( + option_name + strlen("convert_to=") + ); + + if (axis->convert_to == RELABSD_UNKNOWN) + { + RELABSD_ERROR + ( + "Unknown target axis to convert to in config for axis '%s'.", + axis_name + ); + + return -1; + } + } else { RELABSD_ERROR -- cgit v1.2.3-70-g09d2