diff options
Diffstat (limited to 'common/action_layer.c')
-rw-r--r-- | common/action_layer.c | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/common/action_layer.c b/common/action_layer.c deleted file mode 100644 index c535615f44..0000000000 --- a/common/action_layer.c +++ /dev/null @@ -1,138 +0,0 @@ -#include <stdint.h> -#include "keyboard.h" -#include "action.h" -#include "util.h" -#include "action_layer.h" - -#ifdef DEBUG_ACTION -#include "debug.h" -#else -#include "nodebug.h" -#endif - - -/* - * Default Layer State - */ -uint32_t default_layer_state = 0; - -static void default_layer_state_set(uint32_t state) -{ - debug("default_layer_state: "); - default_layer_debug(); debug(" to "); - default_layer_state = state; - default_layer_debug(); debug("\n"); - clear_keyboard_but_mods(); // To avoid stuck keys -} - -void default_layer_debug(void) -{ - dprintf("%08lX(%u)", default_layer_state, biton32(default_layer_state)); -} - -void default_layer_set(uint32_t state) -{ - default_layer_state_set(state); -} - -#ifndef NO_ACTION_LAYER -void default_layer_or(uint32_t state) -{ - default_layer_state_set(default_layer_state | state); -} -void default_layer_and(uint32_t state) -{ - default_layer_state_set(default_layer_state & state); -} -void default_layer_xor(uint32_t state) -{ - default_layer_state_set(default_layer_state ^ state); -} -#endif - - -#ifndef NO_ACTION_LAYER -/* - * Keymap Layer State - */ -uint32_t layer_state = 0; - -static void layer_state_set(uint32_t state) -{ - dprint("layer_state: "); - layer_debug(); dprint(" to "); - layer_state = state; - layer_debug(); dprintln(); - clear_keyboard_but_mods(); // To avoid stuck keys -} - -void layer_clear(void) -{ - layer_state_set(0); -} - -void layer_move(uint8_t layer) -{ - layer_state_set(1UL<<layer); -} - -void layer_on(uint8_t layer) -{ - layer_state_set(layer_state | (1UL<<layer)); -} - -void layer_off(uint8_t layer) -{ - layer_state_set(layer_state & ~(1UL<<layer)); -} - -void layer_invert(uint8_t layer) -{ - layer_state_set(layer_state ^ (1UL<<layer)); -} - -void layer_or(uint32_t state) -{ - layer_state_set(layer_state | state); -} -void layer_and(uint32_t state) -{ - layer_state_set(layer_state & state); -} -void layer_xor(uint32_t state) -{ - layer_state_set(layer_state ^ state); -} - -void layer_debug(void) -{ - dprintf("%08lX(%u)", layer_state, biton32(layer_state)); -} -#endif - - - -action_t layer_switch_get_action(keypos_t key) -{ - action_t action; - action.code = ACTION_TRANSPARENT; - -#ifndef NO_ACTION_LAYER - uint32_t layers = layer_state | default_layer_state; - /* check top layer first */ - for (int8_t i = 31; i >= 0; i--) { - if (layers & (1UL<<i)) { - action = action_for_key(i, key); - if (action.code != ACTION_TRANSPARENT) { - return action; - } - } - } - /* fall back to layer 0 */ - action = action_for_key(0, key); - return action; -#else - action = action_for_key(biton32(default_layer_state), key); - return action; -#endif -} |