From cc8e66754b1a5d0c11985cb0feb51ead49668744 Mon Sep 17 00:00:00 2001 From: tmk Date: Tue, 2 Apr 2013 16:09:43 +0900 Subject: Refine ACT_LAYER and ACT_LAYER_TAP - Remove ACT_LAYER_BITOP --- common/layer_switch.c | 122 +++++++++++++++++++++++++++----------------------- 1 file changed, 67 insertions(+), 55 deletions(-) (limited to 'common/layer_switch.c') diff --git a/common/layer_switch.c b/common/layer_switch.c index 359e6b9d84..9905741f48 100644 --- a/common/layer_switch.c +++ b/common/layer_switch.c @@ -7,94 +7,103 @@ /* - * Default Layer (0-15) + * Default Layer State */ -uint8_t default_layer = 0; +uint32_t default_layer_state = 0; -void default_layer_set(uint8_t layer) +static void default_layer_state_set(uint32_t state) { - debug("default_layer_set: "); - debug_dec(default_layer); debug(" to "); - - default_layer = layer; - - debug_dec(default_layer); debug("\n"); - + 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 } - -#ifndef NO_ACTION_LAYER -/* - * Keymap Layer (0-15) - */ -uint16_t keymap_stat = 0; - -/* return highest layer whose state is on */ -uint8_t keymap_get_layer(void) +void default_layer_debug(void) { - return biton16(keymap_stat); + debug_hex32(default_layer_state); + debug("("); debug_dec(biton32(default_layer_state)); debug(")"); } -static void keymap_stat_set(uint16_t stat) +void default_layer_set(uint8_t layer) { - debug("keymap: "); - keymap_debug(); debug(" to "); + default_layer_state_set(1UL<= 0; i--) { - if (keymap_stat & (1<= 0; i--) { + if (layers & (1UL<