aboutsummaryrefslogtreecommitdiff
path: root/tmk_core/common/action_layer.h
diff options
context:
space:
mode:
Diffstat (limited to 'tmk_core/common/action_layer.h')
-rw-r--r--tmk_core/common/action_layer.h38
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 )
25typedef uint8_t layer_state_t;
26#elif defined(LAYER_STATE_16BIT)
27typedef uint16_t layer_state_t;
28#else
29typedef uint32_t layer_state_t;
30#endif
31
24 32
25/* 33/*
26 * Default Layer 34 * Default Layer
27 */ 35 */
28extern uint32_t default_layer_state; 36extern layer_state_t default_layer_state;
29void default_layer_debug(void); 37void default_layer_debug(void);
30void default_layer_set(uint32_t state); 38void default_layer_set(layer_state_t state);
31 39
32__attribute__((weak)) 40__attribute__((weak))
33uint32_t default_layer_state_set_kb(uint32_t state); 41layer_state_t default_layer_state_set_kb(layer_state_t state);
34__attribute__((weak)) 42__attribute__((weak))
35uint32_t default_layer_state_set_user(uint32_t state); 43layer_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 */
39void default_layer_or(uint32_t state); 47void default_layer_or(layer_state_t state);
40void default_layer_and(uint32_t state); 48void default_layer_and(layer_state_t state);
41void default_layer_xor(uint32_t state); 49void 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
53extern uint32_t layer_state; 61extern layer_state_t layer_state;
54 62
55void layer_state_set(uint32_t state); 63void layer_state_set(layer_state_t state);
56bool layer_state_is(uint8_t layer); 64bool layer_state_is(uint8_t layer);
57bool layer_state_cmp(uint32_t layer1, uint8_t layer2); 65bool layer_state_cmp(layer_state_t layer1, uint8_t layer2);
58 66
59void layer_debug(void); 67void layer_debug(void);
60void layer_clear(void); 68void layer_clear(void);
@@ -63,9 +71,9 @@ void layer_on(uint8_t layer);
63void layer_off(uint8_t layer); 71void layer_off(uint8_t layer);
64void layer_invert(uint8_t layer); 72void layer_invert(uint8_t layer);
65/* bitwise operation */ 73/* bitwise operation */
66void layer_or(uint32_t state); 74void layer_or(layer_state_t state);
67void layer_and(uint32_t state); 75void layer_and(layer_state_t state);
68void layer_xor(uint32_t state); 76void 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
87uint32_t layer_state_set_user(uint32_t state); 95layer_state_t layer_state_set_user(layer_state_t state);
88uint32_t layer_state_set_kb(uint32_t state); 96layer_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)