diff options
Diffstat (limited to 'app/src/behaviors/behavior_hid.c')
-rw-r--r-- | app/src/behaviors/behavior_hid.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/app/src/behaviors/behavior_hid.c b/app/src/behaviors/behavior_hid.c index 2779568..0aeade5 100644 --- a/app/src/behaviors/behavior_hid.c +++ b/app/src/behaviors/behavior_hid.c @@ -42,9 +42,27 @@ static int on_keycode_released(struct device *dev, u32_t keycode) return zmk_endpoints_send_report(changes); } +static int on_modifiers_pressed(struct device *dev, zmk_mod_flags modifiers) +{ + LOG_DBG("modifiers %d", modifiers); + + zmk_hid_register_mods(modifiers); + return zmk_endpoints_send_report(Keypad); +} + +static int on_modifiers_released(struct device *dev, zmk_mod_flags modifiers) +{ + LOG_DBG("modifiers %d", modifiers); + + zmk_hid_unregister_mods(modifiers); + return zmk_endpoints_send_report(Keypad); +} + static const struct behavior_driver_api behavior_hid_driver_api = { .keycode_pressed = on_keycode_pressed, - .keycode_released = on_keycode_released + .keycode_released = on_keycode_released, + .modifiers_pressed = on_modifiers_pressed, + .modifiers_released = on_modifiers_released }; |