diff options
Diffstat (limited to 'app/src/behaviors/behavior_mod_tap.c')
-rw-r--r-- | app/src/behaviors/behavior_mod_tap.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/app/src/behaviors/behavior_mod_tap.c b/app/src/behaviors/behavior_mod_tap.c index c9baff4..3746183 100644 --- a/app/src/behaviors/behavior_mod_tap.c +++ b/app/src/behaviors/behavior_mod_tap.c @@ -12,6 +12,7 @@ #include <zmk/event-manager.h> #include <zmk/events/keycode-state-changed.h> +#include <zmk/events/modifiers-state-changed.h> #include <zmk/events.h> LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); @@ -48,21 +49,20 @@ static int on_keymap_binding_pressed(struct device *dev, u32_t position, u32_t m struct behavior_mod_tap_data *data = dev->driver_data; LOG_DBG("mods: %d, keycode: %d", mods, keycode); WRITE_BIT(data->pending_press_positions, position, true); - return zmk_events_modifiers_pressed(mods); + return ZMK_EVENT_RAISE(create_modifiers_state_changed(mods, true)); } - -// They keycode is passed by the "keymap" based on the parameter created as part of the assignment. static int on_keymap_binding_released(struct device *dev, u32_t position, u32_t mods, u32_t keycode) { struct behavior_mod_tap_data *data = dev->driver_data; LOG_DBG("mods: %d, keycode: %d", mods, keycode); - zmk_events_modifiers_released(mods); + ZMK_EVENT_RAISE(create_modifiers_state_changed(mods, false)); + k_msleep(10); // TODO: Better approach than k_msleep to avoid USB send failures? Retries in the USB endpoint layer? if (data->pending_press_positions & BIT(position)) { - zmk_events_keycode_pressed(USAGE_KEYPAD, keycode); + ZMK_EVENT_RAISE(create_keycode_state_changed(USAGE_KEYPAD, keycode, true)); k_msleep(10); - zmk_events_keycode_released(USAGE_KEYPAD, keycode); + ZMK_EVENT_RAISE(create_keycode_state_changed(USAGE_KEYPAD, keycode, false)); } return 0; @@ -73,7 +73,6 @@ static const struct behavior_driver_api behavior_mod_tap_driver_api = { .binding_released = on_keymap_binding_released, }; - static const struct behavior_mod_tap_config behavior_mod_tap_config = {}; static struct behavior_mod_tap_data behavior_mod_tap_data; |