/* * Utilities for example programs * * Copyright (C) 2019 Marco Trevisan * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include #include "utilities.h" const char * finger_to_string (FpFinger finger) { switch (finger) { case FP_FINGER_LEFT_THUMB: return "left thumb"; case FP_FINGER_LEFT_INDEX: return "left index"; case FP_FINGER_LEFT_MIDDLE: return "left middle"; case FP_FINGER_LEFT_RING: return "left ring"; case FP_FINGER_LEFT_LITTLE: return "left little"; case FP_FINGER_RIGHT_THUMB: return "right thumb"; case FP_FINGER_RIGHT_INDEX: return "right index"; case FP_FINGER_RIGHT_MIDDLE: return "right middle"; case FP_FINGER_RIGHT_RING: return "right ring"; case FP_FINGER_RIGHT_LITTLE: return "right little"; default: return "unknown"; } } FpFinger finger_chooser (void) { int i; const FpFinger all_fingers[] = { FP_FINGER_LEFT_THUMB, FP_FINGER_LEFT_INDEX, FP_FINGER_LEFT_MIDDLE, FP_FINGER_LEFT_RING, FP_FINGER_LEFT_LITTLE, FP_FINGER_RIGHT_THUMB, FP_FINGER_RIGHT_INDEX, FP_FINGER_RIGHT_MIDDLE, FP_FINGER_RIGHT_RING, FP_FINGER_RIGHT_LITTLE, }; for (i = all_fingers[0]; i <= G_N_ELEMENTS (all_fingers); ++i) g_print(" [%d] %s\n", (i - all_fingers[0]), finger_to_string (i)); g_print ("> "); if (!scanf ("%d%*c", &i)) return FP_FINGER_UNKNOWN; if (i < 0 || i >= G_N_ELEMENTS (all_fingers)) return FP_FINGER_UNKNOWN; return all_fingers[i]; }