diff options
Diffstat (limited to 'tmk_core/common/action_layer.h')
-rw-r--r-- | tmk_core/common/action_layer.h | 58 |
1 files changed, 27 insertions, 31 deletions
diff --git a/tmk_core/common/action_layer.h b/tmk_core/common/action_layer.h index a2734a29e..fee9b244d 100644 --- a/tmk_core/common/action_layer.h +++ b/tmk_core/common/action_layer.h | |||
@@ -23,27 +23,24 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
23 | 23 | ||
24 | #if defined(LAYER_STATE_8BIT) | 24 | #if defined(LAYER_STATE_8BIT) |
25 | typedef uint8_t layer_state_t; | 25 | typedef uint8_t layer_state_t; |
26 | #define get_highest_layer(state) biton8(state) | 26 | # define get_highest_layer(state) biton8(state) |
27 | #elif defined(LAYER_STATE_16BIT) | 27 | #elif defined(LAYER_STATE_16BIT) |
28 | typedef uint16_t layer_state_t; | 28 | typedef uint16_t layer_state_t; |
29 | #define get_highest_layer(state) biton16(state) | 29 | # define get_highest_layer(state) biton16(state) |
30 | #else | 30 | #else |
31 | typedef uint32_t layer_state_t; | 31 | typedef uint32_t layer_state_t; |
32 | #define get_highest_layer(state) biton32(state) | 32 | # define get_highest_layer(state) biton32(state) |
33 | #endif | 33 | #endif |
34 | 34 | ||
35 | |||
36 | /* | 35 | /* |
37 | * Default Layer | 36 | * Default Layer |
38 | */ | 37 | */ |
39 | extern layer_state_t default_layer_state; | 38 | extern layer_state_t default_layer_state; |
40 | void default_layer_debug(void); | 39 | void default_layer_debug(void); |
41 | void default_layer_set(layer_state_t state); | 40 | void default_layer_set(layer_state_t state); |
42 | 41 | ||
43 | __attribute__((weak)) | 42 | __attribute__((weak)) layer_state_t default_layer_state_set_kb(layer_state_t state); |
44 | layer_state_t default_layer_state_set_kb(layer_state_t state); | 43 | __attribute__((weak)) layer_state_t default_layer_state_set_user(layer_state_t state); |
45 | __attribute__((weak)) | ||
46 | layer_state_t default_layer_state_set_user(layer_state_t state); | ||
47 | 44 | ||
48 | #ifndef NO_ACTION_LAYER | 45 | #ifndef NO_ACTION_LAYER |
49 | /* bitwise operation */ | 46 | /* bitwise operation */ |
@@ -51,12 +48,11 @@ void default_layer_or(layer_state_t state); | |||
51 | void default_layer_and(layer_state_t state); | 48 | void default_layer_and(layer_state_t state); |
52 | void default_layer_xor(layer_state_t state); | 49 | void default_layer_xor(layer_state_t state); |
53 | #else | 50 | #else |
54 | #define default_layer_or(state) | 51 | # define default_layer_or(state) |
55 | #define default_layer_and(state) | 52 | # define default_layer_and(state) |
56 | #define default_layer_xor(state) | 53 | # define default_layer_xor(state) |
57 | #endif | 54 | #endif |
58 | 55 | ||
59 | |||
60 | /* | 56 | /* |
61 | * Keymap Layer | 57 | * Keymap Layer |
62 | */ | 58 | */ |
@@ -78,21 +74,21 @@ void layer_or(layer_state_t state); | |||
78 | void layer_and(layer_state_t state); | 74 | void layer_and(layer_state_t state); |
79 | void layer_xor(layer_state_t state); | 75 | void layer_xor(layer_state_t state); |
80 | #else | 76 | #else |
81 | #define layer_state 0 | 77 | # define layer_state 0 |
82 | 78 | ||
83 | #define layer_state_set(layer) | 79 | # define layer_state_set(layer) |
84 | #define layer_state_is(layer) (layer == 0) | 80 | # define layer_state_is(layer) (layer == 0) |
85 | #define layer_state_cmp(state, layer) (state == 0 ? layer == 0 : (state & 1UL << layer) != 0) | 81 | # define layer_state_cmp(state, layer) (state == 0 ? layer == 0 : (state & 1UL << layer) != 0) |
86 | 82 | ||
87 | #define layer_debug() | 83 | # define layer_debug() |
88 | #define layer_clear() | 84 | # define layer_clear() |
89 | #define layer_move(layer) | 85 | # define layer_move(layer) |
90 | #define layer_on(layer) | 86 | # define layer_on(layer) |
91 | #define layer_off(layer) | 87 | # define layer_off(layer) |
92 | #define layer_invert(layer) | 88 | # define layer_invert(layer) |
93 | #define layer_or(state) | 89 | # define layer_or(state) |
94 | #define layer_and(state) | 90 | # define layer_and(state) |
95 | #define layer_xor(state) | 91 | # define layer_xor(state) |
96 | #endif | 92 | #endif |
97 | 93 | ||
98 | layer_state_t layer_state_set_user(layer_state_t state); | 94 | layer_state_t layer_state_set_user(layer_state_t state); |
@@ -101,8 +97,8 @@ layer_state_t layer_state_set_kb(layer_state_t state); | |||
101 | /* pressed actions cache */ | 97 | /* pressed actions cache */ |
102 | #if !defined(NO_ACTION_LAYER) && !defined(STRICT_LAYER_RELEASE) | 98 | #if !defined(NO_ACTION_LAYER) && !defined(STRICT_LAYER_RELEASE) |
103 | /* The number of bits needed to represent the layer number: log2(32). */ | 99 | /* The number of bits needed to represent the layer number: log2(32). */ |
104 | #define MAX_LAYER_BITS 5 | 100 | # define MAX_LAYER_BITS 5 |
105 | void update_source_layers_cache(keypos_t key, uint8_t layer); | 101 | void update_source_layers_cache(keypos_t key, uint8_t layer); |
106 | uint8_t read_source_layers_cache(keypos_t key); | 102 | uint8_t read_source_layers_cache(keypos_t key); |
107 | #endif | 103 | #endif |
108 | action_t store_or_get_action(bool pressed, keypos_t key); | 104 | action_t store_or_get_action(bool pressed, keypos_t key); |