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.h15
1 files changed, 13 insertions, 2 deletions
diff --git a/tmk_core/common/action_layer.h b/tmk_core/common/action_layer.h
index c283d2623..16922c1ff 100644
--- a/tmk_core/common/action_layer.h
+++ b/tmk_core/common/action_layer.h
@@ -23,12 +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)
25typedef uint8_t layer_state_t; 25typedef uint8_t layer_state_t;
26# define MAX_LAYER_BITS 3
27# ifndef MAX_LAYER
28# define MAX_LAYER 8
29# endif
26# define get_highest_layer(state) biton(state) 30# define get_highest_layer(state) biton(state)
27#elif defined(LAYER_STATE_16BIT) 31#elif defined(LAYER_STATE_16BIT)
28typedef uint16_t layer_state_t; 32typedef uint16_t layer_state_t;
33# define MAX_LAYER_BITS 4
34# ifndef MAX_LAYER
35# define MAX_LAYER 16
36# endif
29# define get_highest_layer(state) biton16(state) 37# define get_highest_layer(state) biton16(state)
30#else 38#else
31typedef uint32_t layer_state_t; 39typedef uint32_t layer_state_t;
40# define MAX_LAYER_BITS 5
41# ifndef MAX_LAYER
42# define MAX_LAYER 32
43# endif
32# define get_highest_layer(state) biton32(state) 44# define get_highest_layer(state) biton32(state)
33#endif 45#endif
34 46
@@ -96,8 +108,7 @@ layer_state_t layer_state_set_kb(layer_state_t state);
96 108
97/* pressed actions cache */ 109/* pressed actions cache */
98#if !defined(NO_ACTION_LAYER) && !defined(STRICT_LAYER_RELEASE) 110#if !defined(NO_ACTION_LAYER) && !defined(STRICT_LAYER_RELEASE)
99/* The number of bits needed to represent the layer number: log2(32). */ 111
100# define MAX_LAYER_BITS 5
101void update_source_layers_cache(keypos_t key, uint8_t layer); 112void update_source_layers_cache(keypos_t key, uint8_t layer);
102uint8_t read_source_layers_cache(keypos_t key); 113uint8_t read_source_layers_cache(keypos_t key);
103#endif 114#endif