diff options
Diffstat (limited to 'tmk_core/common/action_layer.h')
-rw-r--r-- | tmk_core/common/action_layer.h | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/tmk_core/common/action_layer.h b/tmk_core/common/action_layer.h index 6e2f35d90..7fa30c86d 100644 --- a/tmk_core/common/action_layer.h +++ b/tmk_core/common/action_layer.h | |||
@@ -21,24 +21,32 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
21 | #include "keyboard.h" | 21 | #include "keyboard.h" |
22 | #include "action.h" | 22 | #include "action.h" |
23 | 23 | ||
24 | #if defined(LAYER_STATE_8BIT) || ( defined(DYNAMIC_KEYMAP_ENABLE) && DYNAMIC_KEYMAP_LAYER_COUNT >= 8 ) | ||
25 | typedef uint8_t layer_state_t; | ||
26 | #elif defined(LAYER_STATE_16BIT) | ||
27 | typedef uint16_t layer_state_t; | ||
28 | #else | ||
29 | typedef uint32_t layer_state_t; | ||
30 | #endif | ||
31 | |||
24 | 32 | ||
25 | /* | 33 | /* |
26 | * Default Layer | 34 | * Default Layer |
27 | */ | 35 | */ |
28 | extern uint32_t default_layer_state; | 36 | extern layer_state_t default_layer_state; |
29 | void default_layer_debug(void); | 37 | void default_layer_debug(void); |
30 | void default_layer_set(uint32_t state); | 38 | void default_layer_set(layer_state_t state); |
31 | 39 | ||
32 | __attribute__((weak)) | 40 | __attribute__((weak)) |
33 | uint32_t default_layer_state_set_kb(uint32_t state); | 41 | layer_state_t default_layer_state_set_kb(layer_state_t state); |
34 | __attribute__((weak)) | 42 | __attribute__((weak)) |
35 | uint32_t default_layer_state_set_user(uint32_t state); | 43 | layer_state_t default_layer_state_set_user(layer_state_t state); |
36 | 44 | ||
37 | #ifndef NO_ACTION_LAYER | 45 | #ifndef NO_ACTION_LAYER |
38 | /* bitwise operation */ | 46 | /* bitwise operation */ |
39 | void default_layer_or(uint32_t state); | 47 | void default_layer_or(layer_state_t state); |
40 | void default_layer_and(uint32_t state); | 48 | void default_layer_and(layer_state_t state); |
41 | void default_layer_xor(uint32_t state); | 49 | void default_layer_xor(layer_state_t state); |
42 | #else | 50 | #else |
43 | #define default_layer_or(state) | 51 | #define default_layer_or(state) |
44 | #define default_layer_and(state) | 52 | #define default_layer_and(state) |
@@ -50,11 +58,11 @@ void default_layer_xor(uint32_t state); | |||
50 | * Keymap Layer | 58 | * Keymap Layer |
51 | */ | 59 | */ |
52 | #ifndef NO_ACTION_LAYER | 60 | #ifndef NO_ACTION_LAYER |
53 | extern uint32_t layer_state; | 61 | extern layer_state_t layer_state; |
54 | 62 | ||
55 | void layer_state_set(uint32_t state); | 63 | void layer_state_set(layer_state_t state); |
56 | bool layer_state_is(uint8_t layer); | 64 | bool layer_state_is(uint8_t layer); |
57 | bool layer_state_cmp(uint32_t layer1, uint8_t layer2); | 65 | bool layer_state_cmp(layer_state_t layer1, uint8_t layer2); |
58 | 66 | ||
59 | void layer_debug(void); | 67 | void layer_debug(void); |
60 | void layer_clear(void); | 68 | void layer_clear(void); |
@@ -63,9 +71,9 @@ void layer_on(uint8_t layer); | |||
63 | void layer_off(uint8_t layer); | 71 | void layer_off(uint8_t layer); |
64 | void layer_invert(uint8_t layer); | 72 | void layer_invert(uint8_t layer); |
65 | /* bitwise operation */ | 73 | /* bitwise operation */ |
66 | void layer_or(uint32_t state); | 74 | void layer_or(layer_state_t state); |
67 | void layer_and(uint32_t state); | 75 | void layer_and(layer_state_t state); |
68 | void layer_xor(uint32_t state); | 76 | void layer_xor(layer_state_t state); |
69 | #else | 77 | #else |
70 | #define layer_state 0 | 78 | #define layer_state 0 |
71 | 79 | ||
@@ -84,8 +92,8 @@ void layer_xor(uint32_t state); | |||
84 | #define layer_xor(state) | 92 | #define layer_xor(state) |
85 | #endif | 93 | #endif |
86 | 94 | ||
87 | uint32_t layer_state_set_user(uint32_t state); | 95 | layer_state_t layer_state_set_user(layer_state_t state); |
88 | uint32_t layer_state_set_kb(uint32_t state); | 96 | layer_state_t layer_state_set_kb(layer_state_t state); |
89 | 97 | ||
90 | /* pressed actions cache */ | 98 | /* pressed actions cache */ |
91 | #if !defined(NO_ACTION_LAYER) && !defined(STRICT_LAYER_RELEASE) | 99 | #if !defined(NO_ACTION_LAYER) && !defined(STRICT_LAYER_RELEASE) |