summaryrefslogtreecommitdiff
path: root/include/zmk
diff options
context:
space:
mode:
Diffstat (limited to 'include/zmk')
-rw-r--r--include/zmk/keymap.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/zmk/keymap.h b/include/zmk/keymap.h
index 9b58cc0..e575774 100644
--- a/include/zmk/keymap.h
+++ b/include/zmk/keymap.h
@@ -11,6 +11,16 @@
#define ZMK_KEYMAP_NODE DT_CHOSEN(zmk_keymap)
#define ZMK_KEYMAP_LAYERS_LEN DT_PROP_LEN(ZMK_KEYMAP_NODE, layers)
+#define _ZMK_LAYER_ENUM_ITEM(label) DT_CAT(label, _layer)
+
+#define _ZMK_KEYMAP_GENERATE_LAYER_CONST(node_id) \
+ _ZMK_LAYER_ENUM_ITEM(DT_NODELABEL(node_id)),
+
+enum zmk_keymap_layer
+{
+ DT_FOREACH_CHILD(DT_INST(0, zmk_layers), _ZMK_KEYMAP_GENERATE_LAYER_CONST)
+};
+
bool zmk_keymap_layer_activate(u8_t layer);
bool zmk_keymap_layer_deactivate(u8_t layer);