summaryrefslogtreecommitdiffstats
path: root/tmk_core/common/action_layer.c
diff options
context:
space:
mode:
Diffstat (limited to 'tmk_core/common/action_layer.c')
-rw-r--r--tmk_core/common/action_layer.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/tmk_core/common/action_layer.c b/tmk_core/common/action_layer.c
index 277a8f5d9..46ea58727 100644
--- a/tmk_core/common/action_layer.c
+++ b/tmk_core/common/action_layer.c
@@ -88,6 +88,16 @@ void layer_clear(void)
layer_state_set(0);
}
+bool layer_state_is(uint8_t layer)
+{
+ return layer_state_cmp(layer_state, layer);
+}
+
+bool layer_state_cmp(uint32_t cmp_layer_state, uint8_t layer) {
+ if (layer == 0) { return cmp_layer_state == 0; }
+ return (cmp_layer_state & (1UL<<layer)) > 0;
+}
+
void layer_move(uint8_t layer)
{
layer_state_set(1UL<<layer);