summaryrefslogtreecommitdiff
path: root/app/src/behaviors/behavior_mod_tap.c
diff options
context:
space:
mode:
authorPete Johanson <peter@peterjohanson.com>2020-06-30 10:43:09 -0400
committerPete Johanson <peter@peterjohanson.com>2020-06-30 10:43:09 -0400
commit96ec16da9246c3c7c07986a0c6a2900d3bbfddaa (patch)
tree436ee8d582e13ea76cde1e56c118c69d97d6d616 /app/src/behaviors/behavior_mod_tap.c
parent9a991bf019d6f723bc4230822852efa78a05be49 (diff)
Modifier event, tweaks for linker script.
Diffstat (limited to 'app/src/behaviors/behavior_mod_tap.c')
-rw-r--r--app/src/behaviors/behavior_mod_tap.c13
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;