summaryrefslogtreecommitdiff
path: root/app/src/keymap.c
diff options
context:
space:
mode:
authorPete Johanson <peter@peterjohanson.com>2020-06-30 16:42:52 -0400
committerGitHub <noreply@github.com>2020-06-30 16:42:52 -0400
commit4c5ed99381c47633c009177639896eebfb7e2002 (patch)
treeb0c6ddd628fd4357e04905182ba6f0e620f5390e /app/src/keymap.c
parentb23a73e4888856fe476ab5fee655f8ccf6626e4c (diff)
parent7bf8621d5bea45c57dbbf0fac927d3332177b81b (diff)
Merge pull request #42 from petejohanson/core/event-manager-refactor
Refactor to generic event manager, ditch "global behaviors" as a concept.
Diffstat (limited to 'app/src/keymap.c')
-rw-r--r--app/src/keymap.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/app/src/keymap.c b/app/src/keymap.c
index f951dd7..dcfd0f1 100644
--- a/app/src/keymap.c
+++ b/app/src/keymap.c
@@ -9,6 +9,9 @@ LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
#include <drivers/behavior.h>
#include <zmk/behavior.h>
+#include <zmk/event-manager.h>
+#include <zmk/events/position-state-changed.h>
+
static u32_t zmk_keymap_layer_state = 0;
static u8_t zmk_keymap_layer_default = 0;
@@ -116,3 +119,16 @@ int zmk_keymap_position_state_changed(u32_t position, bool pressed)
return -ENOTSUP;
}
+
+int keymap_listener(const struct zmk_event_header *eh)
+{
+ if (is_position_state_changed(eh)) {
+ const struct position_state_changed *ev = cast_position_state_changed(eh);
+ zmk_keymap_position_state_changed(ev->position, ev->state);
+ }
+ return 0;
+}
+
+ZMK_LISTENER(keymap, keymap_listener);
+ZMK_SUBSCRIPTION(keymap, position_state_changed);
+