X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=common%2Fkeymap.h;h=e1a6f992e64cf47e0201790ddce1b8f069c6c06a;hb=1f96edaed60def1f513ddd8adcdfa3e12b971006;hp=ee36eab83500f52ac31c036dd049e3bd555a5f80;hpb=7054203e16af627a921b503a9508ce789913471d;p=tmk_firmware.git diff --git a/common/keymap.h b/common/keymap.h index ee36eab..e1a6f99 100644 --- a/common/keymap.h +++ b/common/keymap.h @@ -23,38 +23,48 @@ along with this program. If not, see . #include "action.h" -// TODO: move to action.h? -/* layer used currently */ -extern uint8_t current_layer; -/* layer to return or start with */ -extern uint8_t default_layer; +#ifdef BOOTMAGIC_ENABLE +/* NOTE: Not portable. Bit field order depends on implementation */ +typedef union { + uint8_t raw; + struct { + bool swap_control_capslock:1; + bool capslock_to_control:1; + bool swap_lalt_lgui:1; + bool swap_ralt_rgui:1; + bool no_gui:1; + bool swap_grave_esc:1; + bool swap_backslash_backspace:1; + bool nkro:1; + }; +} keymap_config_t; +keymap_config_t keymap_config; +#endif + +/* translates key to keycode */ +uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key); -/* translates key_t to keycode */ -uint8_t keymap_key_to_keycode(uint8_t layer, key_t key); -/* translates keycode to action */ -action_t keymap_keycode_to_action(uint8_t keycode); /* translates Fn keycode to action */ action_t keymap_fn_to_action(uint8_t keycode); -/* action for key */ -// TODO: should use struct key_t? move to action.h? -action_t keymap_get_action(uint8_t layer, uint8_t row, uint8_t col); - -/* user defined special function */ -void keymap_call_function(keyrecord_t *record, uint8_t id, uint8_t opt); - - -#ifndef NO_LEGACY_KEYMAP_SUPPORT +#ifdef USE_LEGACY_KEYMAP +/* + * Legacy keymap + * Consider using new keymap API above instead. + */ /* keycode of key */ +__attribute__ ((deprecated)) uint8_t keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t col); /* layer to move during press Fn key */ +__attribute__ ((deprecated)) uint8_t keymap_fn_layer(uint8_t fn_bits); /* keycode to send when release Fn key without using */ +__attribute__ ((deprecated)) uint8_t keymap_fn_keycode(uint8_t fn_bits); #endif