diff options
author | Seth <fl3tching101@gmail.com> | 2021-09-11 00:32:29 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-11 00:32:29 -0700 |
commit | 35bff470f73e5041f4e969f5dae5f60d4c1ea3e0 (patch) | |
tree | f70195740edde70fe714102fa81398d390ab22a2 /keyboards/rocketboard_16/keycode_lookup.c | |
parent | 5f941910755907ea300a526634c1269823477e7b (diff) |
[Keyboard] Update rocketboard_16 with *most* of its final features (#12537)
Diffstat (limited to 'keyboards/rocketboard_16/keycode_lookup.c')
-rw-r--r-- | keyboards/rocketboard_16/keycode_lookup.c | 407 |
1 files changed, 407 insertions, 0 deletions
diff --git a/keyboards/rocketboard_16/keycode_lookup.c b/keyboards/rocketboard_16/keycode_lookup.c new file mode 100644 index 0000000000..9e1c5f92af --- /dev/null +++ b/keyboards/rocketboard_16/keycode_lookup.c @@ -0,0 +1,407 @@ +/* Copyright 2021 Seth Bonner <fl3tching101@gmail.com> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "keycode_lookup.h" +#include "print.h" +#include "via.h" + +#define num_keycodes (sizeof(lookup_table)/sizeof(lookup_table[0])) +static char UNKNOWN_KEYCODE[] = "UNKNOWN"; + +int cmp(const void *v1, const void *v2) +{ + const lookup_table_t *c1 = v1; + const lookup_table_t *c2 = v2; + + return (c1->keycode - c2->keycode); +} + +/* + Returns a pointer to a string containing the string describing the keycode, such as those found here: + https://beta.docs.qmk.fm/using-qmk/simple-keycodes/keycodes + + Will return a string that says "UNKNOWN" if the keycode cannot be found. +*/ +char* translate_keycode_to_string(uint16_t code) +{ + lookup_table_t * result = NULL; + lookup_table_t target = {.key_string = "", .keycode = code}; + char * return_p; + + result = bsearch(&target, lookup_table, num_keycodes, sizeof(lookup_table_t), cmp); + + if(result != NULL) + { + return_p = result->key_string; + } + else + { + return_p = UNKNOWN_KEYCODE; + } + + return (return_p); +} + +lookup_table_t lookup_table[366] = +{ + {"KC_NO", KC_NO}, + {"KC_TRNS", KC_TRNS}, + {"KC_A", KC_A}, + {"KC_B", KC_B}, + {"KC_C", KC_C}, + {"KC_D", KC_D}, + {"KC_E", KC_E}, + {"KC_F", KC_F}, + {"KC_G", KC_G}, + {"KC_H", KC_H}, + {"KC_I", KC_I}, + {"KC_J", KC_J}, + {"KC_K", KC_K}, + {"KC_L", KC_L}, + {"KC_M", KC_M}, + {"KC_N", KC_N}, + {"KC_O", KC_O}, + {"KC_P", KC_P}, + {"KC_Q", KC_Q}, + {"KC_R", KC_R}, + {"KC_S", KC_S}, + {"KC_T", KC_T}, + {"KC_U", KC_U}, + {"KC_V", KC_V}, + {"KC_W", KC_W}, + {"KC_X", KC_X}, + {"KC_Y", KC_Y}, + {"KC_Z", KC_Z}, + {"KC_1", KC_1}, + {"KC_2", KC_2}, + {"KC_3", KC_3}, + {"KC_4", KC_4}, + {"KC_5", KC_5}, + {"KC_6", KC_6}, + {"KC_7", KC_7}, + {"KC_8", KC_8}, + {"KC_9", KC_9}, + {"KC_0", KC_0}, + {"KC_ENT", KC_ENT}, + {"KC_ESC", KC_ESC}, + {"KC_BSPC", KC_BSPC}, + {"KC_TAB", KC_TAB}, + {"KC_SPC", KC_SPC}, + {"KC_MINS", KC_MINS}, + {"KC_EQL", KC_EQL}, + {"KC_LBRC", KC_LBRC}, + {"KC_RBRC", KC_RBRC}, + {"KC_BSLS", KC_BSLS}, + {"KC_NUHS", KC_NUHS}, + {"KC_SCLN", KC_SCLN}, + {"KC_QUOT", KC_QUOT}, + {"KC_GRV", KC_GRV}, + {"KC_ZKHK", KC_ZKHK}, + {"KC_COMM", KC_COMM}, + {"KC_DOT", KC_DOT}, + {"KC_SLSH", KC_SLSH}, + {"KC_CAPS", KC_CAPS}, + {"KC_F1", KC_F1}, + {"KC_F2", KC_F2}, + {"KC_F3", KC_F3}, + {"KC_F4", KC_F4}, + {"KC_F5", KC_F5}, + {"KC_F6", KC_F6}, + {"KC_F7", KC_F7}, + {"KC_F8", KC_F8}, + {"KC_F9", KC_F9}, + {"KC_F10", KC_F10}, + {"KC_F11", KC_F11}, + {"KC_F12", KC_F12}, + {"KC_PSCR", KC_PSCR}, + {"KC_SLCK", KC_SLCK}, + {"KC_PAUS", KC_PAUS}, + {"KC_INS", KC_INS}, + {"KC_HOME", KC_HOME}, + {"KC_PGUP", KC_PGUP}, + {"KC_DEL", KC_DEL}, + {"KC_END", KC_END}, + {"KC_PGDN", KC_PGDN}, + {"KC_RGHT", KC_RGHT}, + {"KC_LEFT", KC_LEFT}, + {"KC_DOWN", KC_DOWN}, + {"KC_UP", KC_UP}, + {"KC_NLCK", KC_NLCK}, + {"KC_PSLS", KC_PSLS}, + {"KC_PAST", KC_PAST}, + {"KC_PMNS", KC_PMNS}, + {"KC_PPLS", KC_PPLS}, + {"KC_PENT", KC_PENT}, + {"KC_P1", KC_P1}, + {"KC_P2", KC_P2}, + {"KC_P3", KC_P3}, + {"KC_P4", KC_P4}, + {"KC_P5", KC_P5}, + {"KC_P6", KC_P6}, + {"KC_P7", KC_P7}, + {"KC_P8", KC_P8}, + {"KC_P9", KC_P9}, + {"KC_P0", KC_P0}, + {"KC_PDOT", KC_PDOT}, + {"KC_NUBS", KC_NUBS}, + {"KC_APP", KC_APP}, + {"KC_POWER", KC_POWER}, + {"KC_PEQL", KC_PEQL}, + {"KC_F13", KC_F13}, + {"KC_F14", KC_F14}, + {"KC_F15", KC_F15}, + {"KC_F16", KC_F16}, + {"KC_F17", KC_F17}, + {"KC_F18", KC_F18}, + {"KC_F19", KC_F19}, + {"KC_F20", KC_F20}, + {"KC_F21", KC_F21}, + {"KC_F22", KC_F22}, + {"KC_F23", KC_F23}, + {"KC_F24", KC_F24}, + {"KC_EXECUTE", KC_EXECUTE}, + {"KC_HELP", KC_HELP}, + {"KC_MENU", KC_MENU}, + {"KC_SELECT", KC_SELECT}, + {"KC_STOP", KC_STOP}, + {"KC_AGAIN", KC_AGAIN}, + {"KC_UNDO", KC_UNDO}, + {"KC_CUT", KC_CUT}, + {"KC_COPY", KC_COPY}, + {"KC_PASTE", KC_PASTE}, + {"KC_FIND", KC_FIND}, + {"KC_LCAP", KC_LCAP}, + {"KC_LNUM", KC_LNUM}, + {"KC_LSCR", KC_LSCR}, + {"KC_PCMM", KC_PCMM}, + {"KC_KP_EQUAL_AS400", KC_KP_EQUAL_AS400}, + {"KC_RO", KC_RO}, + {"KC_KANA", KC_KANA}, + {"KC_JYEN", KC_JYEN}, + {"KC_HENK", KC_HENK}, + {"KC_MHEN", KC_MHEN}, + {"KC_INT6", KC_INT6}, + {"KC_INT7", KC_INT7}, + {"KC_INT8", KC_INT8}, + {"KC_INT9", KC_INT9}, + {"KC_HAEN", KC_HAEN}, + {"KC_HANJ", KC_HANJ}, + {"KC_LANG3", KC_LANG3}, + {"KC_LANG4", KC_LANG4}, + {"KC_LANG5", KC_LANG5}, + {"KC_LANG6", KC_LANG6}, + {"KC_LANG7", KC_LANG7}, + {"KC_LANG8", KC_LANG8}, + {"KC_LANG9", KC_LANG9}, + {"KC_ERAS", KC_ERAS}, + {"KC_SYSREQ", KC_SYSREQ}, + {"KC_CANCEL", KC_CANCEL}, + {"KC_CLR", KC_CLR}, + {"KC_CLEAR", KC_CLEAR}, + {"KC_PRIOR", KC_PRIOR}, + {"KC_OUT", KC_OUT}, + {"KC_OPER", KC_OPER}, + {"KC_CLEAR_AGAIN", KC_CLEAR_AGAIN}, + {"KC_CRSEL", KC_CRSEL}, + {"KC_EXSEL", KC_EXSEL}, + {"KC_PWR", KC_PWR}, + {"KC_SLEP", KC_SLEP}, + {"KC_WAKE", KC_WAKE}, + {"KC_MUTE", KC_MUTE}, + {"KC_VOLU", KC_VOLU}, + {"KC_VOLD", KC_VOLD}, + {"KC_MNXT", KC_MNXT}, + {"KC_MPRV", KC_MPRV}, + {"KC_MSTP", KC_MSTP}, + {"KC_MPLY", KC_MPLY}, + {"KC_MSEL", KC_MSEL}, + {"KC_EJCT", KC_EJCT}, + {"KC_MAIL", KC_MAIL}, + {"KC_CALC", KC_CALC}, + {"KC_MYCM", KC_MYCM}, + {"KC_WWW_SEARCH", KC_WWW_SEARCH}, + {"KC_WWW_HOME", KC_WWW_HOME}, + {"KC_WWW_BACK", KC_WWW_BACK}, + {"KC_WWW_FORWARD", KC_WWW_FORWARD}, + {"KC_WWW_STOP", KC_WWW_STOP}, + {"KC_WWW_REFRESH", KC_WWW_REFRESH}, + {"KC_WWW_FAVORITES", KC_WWW_FAVORITES}, + {"KC_MFFD", KC_MFFD}, + {"KC_MRWD", KC_MRWD}, + {"KC_BRIU", KC_BRIU}, + {"KC_BRID", KC_BRID}, + {"KC_FN0", KC_FN0}, + {"KC_FN1", KC_FN1}, + {"KC_FN2", KC_FN2}, + {"KC_FN3", KC_FN3}, + {"KC_FN4", KC_FN4}, + {"KC_FN5", KC_FN5}, + {"KC_FN6", KC_FN6}, + {"KC_FN7", KC_FN7}, + {"KC_FN8", KC_FN8}, + {"KC_FN9", KC_FN9}, + {"KC_FN10", KC_FN10}, + {"KC_FN11", KC_FN11}, + {"KC_FN12", KC_FN12}, + {"KC_FN13", KC_FN13}, + {"KC_FN14", KC_FN14}, + {"KC_FN15", KC_FN15}, + {"KC_FN16", KC_FN16}, + {"KC_FN17", KC_FN17}, + {"KC_FN18", KC_FN18}, + {"KC_FN19", KC_FN19}, + {"KC_FN20", KC_FN20}, + {"KC_FN21", KC_FN21}, + {"KC_FN22", KC_FN22}, + {"KC_FN23", KC_FN23}, + {"KC_FN24", KC_FN24}, + {"KC_FN25", KC_FN25}, + {"KC_FN26", KC_FN26}, + {"KC_FN27", KC_FN27}, + {"KC_FN28", KC_FN28}, + {"KC_FN29", KC_FN29}, + {"KC_FN30", KC_FN30}, + {"KC_FN31", KC_FN31}, + {"KC_LCTL", KC_LCTL}, + {"KC_LSFT", KC_LSFT}, + {"KC_LALT", KC_LALT}, + {"KC_LGUI", KC_LGUI}, + {"KC_RCTL", KC_RCTL}, + {"KC_RSFT", KC_RSFT}, + {"KC_RALT", KC_RALT}, + {"KC_RGUI", KC_RGUI}, + {"KC_MS_UP", KC_MS_UP}, + {"KC_MS_DOWN", KC_MS_DOWN}, + {"KC_MS_LEFT", KC_MS_LEFT}, + {"KC_MS_RIGHT", KC_MS_RIGHT}, + {"KC_MS_BTN1", KC_MS_BTN1}, + {"KC_MS_BTN2", KC_MS_BTN2}, + {"KC_MS_BTN3", KC_MS_BTN3}, + {"KC_MS_BTN4", KC_MS_BTN4}, + {"KC_MS_BTN5", KC_MS_BTN5}, + {"KC_MS_WH_UP", KC_MS_WH_UP}, + {"KC_MS_WH_DOWN", KC_MS_WH_DOWN}, + {"KC_MS_WH_LEFT", KC_MS_WH_LEFT}, + {"KC_MS_WH_RIGHT", KC_MS_WH_RIGHT}, + {"KC_MS_ACCEL0", KC_MS_ACCEL0}, + {"KC_MS_ACCEL1", KC_MS_ACCEL1}, + {"KC_MS_ACCEL2", KC_MS_ACCEL2}, + {"KC_EXLM", KC_EXLM}, + {"KC_AT", KC_AT}, + {"KC_HASH", KC_HASH}, + {"KC_DLR", KC_DLR}, + {"KC_PERC", KC_PERC}, + {"KC_CIRC", KC_CIRC}, + {"KC_AMPR", KC_AMPR}, + {"KC_ASTR", KC_ASTR}, + {"KC_LPRN", KC_LPRN}, + {"KC_RPRN", KC_RPRN}, + {"KC_UNDS", KC_UNDS}, + {"KC_PLUS", KC_PLUS}, + {"KC_LCBR", KC_LCBR}, + {"KC_RCBR", KC_RCBR}, + {"KC_PIPE", KC_PIPE}, + {"KC_COLN", KC_COLN}, + {"KC_DQUO", KC_DQUO}, + {"KC_TILD", KC_TILD}, + {"KC_LT", KC_LT}, + {"KC_GT", KC_GT}, + {"KC_QUES", KC_QUES}, + {"RESET", RESET}, + {"DEBUG", DEBUG}, + {"MAGIC_TOGGLE_NKRO", MAGIC_TOGGLE_NKRO}, + {"KC_GESC", KC_GESC}, + {"AU_ON", AU_ON}, + {"AU_OFF", AU_OFF}, + {"AU_TOG", AU_TOG}, + {"CLICKY_TOGGLE", CLICKY_TOGGLE}, + {"CLICKY_ENABLE", CLICKY_ENABLE}, + {"CLICKY_DISABLE", CLICKY_DISABLE}, + {"CLICKY_UP", CLICKY_UP}, + {"CLICKY_DOWN", CLICKY_DOWN}, + {"CLICKY_RESET", CLICKY_RESET}, + {"MU_ON", MU_ON}, + {"MU_OFF", MU_OFF}, + {"MU_TOG", MU_TOG}, + {"MU_MOD", MU_MOD}, + {"BL_ON", BL_ON}, + {"BL_OFF", BL_OFF}, + {"BL_DEC", BL_DEC}, + {"BL_INC", BL_INC}, + {"BL_TOGG", BL_TOGG}, + {"BL_STEP", BL_STEP}, + {"BL_BRTG", BL_BRTG}, + {"RGB_TOG", RGB_TOG}, + {"RGB_MOD", RGB_MOD}, + {"RGB_RMOD", RGB_RMOD}, + {"RGB_HUI", RGB_HUI}, + {"RGB_HUD", RGB_HUD}, + {"RGB_SAI", RGB_SAI}, + {"RGB_SAD", RGB_SAD}, + {"RGB_VAI", RGB_VAI}, + {"RGB_VAD", RGB_VAD}, + {"RGB_SPI", RGB_SPI}, + {"RGB_SPD", RGB_SPD}, + {"RGB_M_P", RGB_M_P}, + {"RGB_M_B", RGB_M_B}, + {"RGB_M_R", RGB_M_R}, + {"RGB_M_SW", RGB_M_SW}, + {"RGB_M_SN", RGB_M_SN}, + {"RGB_M_K", RGB_M_K}, + {"RGB_M_X", RGB_M_X}, + {"RGB_M_G", RGB_M_G}, + {"KC_LSPO", KC_LSPO}, + {"KC_RSPC", KC_RSPC}, + {"KC_SFTENT", KC_SFTENT}, + {"KC_LCPO", KC_LCPO}, + {"KC_RCPC", KC_RCPC}, + {"KC_LAPO", KC_LAPO}, + {"KC_RAPC", KC_RAPC}, + {"FN_MO13", FN_MO13}, + {"FN_MO23", FN_MO23}, + {"MACRO00", MACRO00}, + {"MACRO01", MACRO01}, + {"MACRO02", MACRO02}, + {"MACRO03", MACRO03}, + {"MACRO04", MACRO04}, + {"MACRO05", MACRO05}, + {"MACRO06", MACRO06}, + {"MACRO07", MACRO07}, + {"MACRO08", MACRO08}, + {"MACRO09", MACRO09}, + {"MACRO10", MACRO10}, + {"MACRO11", MACRO11}, + {"MACRO12", MACRO12}, + {"MACRO13", MACRO13}, + {"MACRO14", MACRO14}, + {"MACRO15", MACRO15}, + {"USER00", USER00}, + {"USER01", USER01}, + {"USER02", USER02}, + {"USER03", USER03}, + {"USER04", USER04}, + {"USER05", USER05}, + {"USER06", USER06}, + {"USER07", USER07}, + {"USER08", USER08}, + {"USER09", USER09}, + {"USER10", USER10}, + {"USER11", USER11}, + {"USER12", USER12}, + {"USER13", USER13}, + {"USER14", USER14}, + {"USER15", USER15} +}; |