summaryrefslogtreecommitdiff
path: root/app/include/zmk/events/layer-state-changed.h
diff options
context:
space:
mode:
authorKemoNine <mcrosson@users.noreply.github.com>2020-12-09 09:35:57 -0500
committerGitHub <noreply@github.com>2020-12-09 09:35:57 -0500
commit2427a4ab3308523200f9419316a10a75f237bb6c (patch)
tree9193a18fd51b26aa4eef1b0331e2ca021b20602d /app/include/zmk/events/layer-state-changed.h
parent4c92a4e50f317227ac6b086be8cde137d5c1fc4e (diff)
feature(keymaps): Keymap layer state event, highest layer API
* Fire an event w/ layer number, state, and timestamp when a layer is activated/deactivated. * Add `zmk_keymap_highest_layer_active()` query. Co-authored-by: KemoNine <mcrosson@kemonine.info>
Diffstat (limited to 'app/include/zmk/events/layer-state-changed.h')
-rw-r--r--app/include/zmk/events/layer-state-changed.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/app/include/zmk/events/layer-state-changed.h b/app/include/zmk/events/layer-state-changed.h
new file mode 100644
index 0000000..dc13ed6
--- /dev/null
+++ b/app/include/zmk/events/layer-state-changed.h
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2020 The ZMK Contributors
+ *
+ * SPDX-License-Identifier: MIT
+ */
+
+#pragma once
+
+#include <zephyr.h>
+#include <zmk/event-manager.h>
+
+struct layer_state_changed {
+ struct zmk_event_header header;
+ u8_t layer;
+ bool state;
+ s64_t timestamp;
+};
+
+ZMK_EVENT_DECLARE(layer_state_changed);
+
+static inline struct layer_state_changed *create_layer_state_changed(u8_t layer, bool state) {
+ struct layer_state_changed *ev = new_layer_state_changed();
+ ev->layer = layer;
+ ev->state = state;
+ ev->timestamp = k_uptime_get();
+
+ return ev;
+}