From 9a991bf019d6f723bc4230822852efa78a05be49 Mon Sep 17 00:00:00 2001 From: Pete Johanson Date: Tue, 30 Jun 2020 00:31:09 -0400 Subject: Initial event manager work, and two first events. * Add initial event manager implementation, roughly mimicking Nordic's API. * Add `position_state_changed` and `keycode_state_changed` events. * Hook up HID and keymap to new events instead of using behaviour global event crazy. --- app/src/keymap.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'app/src/keymap.c') diff --git a/app/src/keymap.c b/app/src/keymap.c index f951dd7..25bcf80 100644 --- a/app/src/keymap.c +++ b/app/src/keymap.c @@ -9,6 +9,9 @@ LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); #include #include +#include +#include + 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); + -- cgit v1.2.3 From 7bf8621d5bea45c57dbbf0fac927d3332177b81b Mon Sep 17 00:00:00 2001 From: Pete Johanson Date: Tue, 30 Jun 2020 16:39:29 -0400 Subject: Whitespace fix. --- app/src/keymap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'app/src/keymap.c') diff --git a/app/src/keymap.c b/app/src/keymap.c index 25bcf80..dcfd0f1 100644 --- a/app/src/keymap.c +++ b/app/src/keymap.c @@ -122,11 +122,11 @@ int zmk_keymap_position_state_changed(u32_t position, bool pressed) 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); + 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; + } + return 0; } ZMK_LISTENER(keymap, keymap_listener); -- cgit v1.2.3