From 4d8465a3a791ebcf4bc74bdcc21eff7341ebc30f Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Fri, 7 Mar 2025 17:08:28 +0100 Subject: More progress on coordinate solver --- src/solvers/coord/common.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src/solvers/coord/common.h') diff --git a/src/solvers/coord/common.h b/src/solvers/coord/common.h index b54e5e2..1d6e622 100644 --- a/src/solvers/coord/common.h +++ b/src/solvers/coord/common.h @@ -6,6 +6,8 @@ coord_t *all_coordinates[] = { }; STATIC void append_coord_name(const coord_t *, char *); +STATIC coord_t *parse_coord(const char *, int); +STATIC uint8_t parse_axis(const char *, int); STATIC void append_coord_name(const coord_t *coord, char *str) @@ -18,3 +20,29 @@ append_coord_name(const coord_t *coord, char *str) str[j] = '\0'; } + +STATIC coord_t * +parse_coord(const char *coord, int n) +{ + int i; + + for (i = 0; all_coordinates[i] != NULL; i++) + if (!strncmp(all_coordinates[i]->name, coord, n)) + return all_coordinates[i]; + + return NULL; +} + +STATIC uint8_t +parse_axis(const char *axis, int n) +{ + if (!strncmp(axis, "UD", n) || !strncmp(axis, "DU", n)) { + return AXIS_UD; + } else if (!strncmp(axis, "RL", n) || !strncmp(axis, "LR", n)) { + return AXIS_RL; + } else if (!strncmp(axis, "FB", n) || !strncmp(axis, "BF", n)) { + return AXIS_FB; + } + + return UINT8_ERROR; +} -- cgit v1.3