From df4a5c8613365a8ee292dedaf345f76c196e4858 Mon Sep 17 00:00:00 2001 From: Okke Formsma Date: Tue, 8 Dec 2020 22:14:56 +0100 Subject: [PATCH] refactor(hid_listener): pass event struct instead of parameters --- app/src/hid_listener.c | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/app/src/hid_listener.c b/app/src/hid_listener.c index cd7acc0e..127eb52e 100644 --- a/app/src/hid_listener.c +++ b/app/src/hid_listener.c @@ -16,46 +16,44 @@ LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); #include #include -static int hid_listener_keycode_pressed(uint16_t usage_page, uint32_t keycode, - zmk_mod_flags_t implicit_modifiers) { +static int hid_listener_keycode_pressed(const struct keycode_state_changed *ev) { int err; - LOG_DBG("usage_page 0x%02X keycode 0x%02X mods 0x%02X", usage_page, keycode, - implicit_modifiers); - switch (usage_page) { + LOG_DBG("usage_page 0x%02X keycode 0x%02X mods 0x%02X", ev->usage_page, ev->keycode, + ev->implicit_modifiers); + switch (ev->usage_page) { case HID_USAGE_KEY: - err = zmk_hid_keyboard_press(keycode); + err = zmk_hid_keyboard_press(ev->keycode); if (err) { LOG_ERR("Unable to press keycode"); return err; } break; case HID_USAGE_CONSUMER: - err = zmk_hid_consumer_press(keycode); + err = zmk_hid_consumer_press(ev->keycode); if (err) { LOG_ERR("Unable to press keycode"); return err; } break; } - zmk_hid_implicit_modifiers_press(implicit_modifiers); - return zmk_endpoints_send_report(usage_page); + zmk_hid_implicit_modifiers_press(ev->implicit_modifiers); + return zmk_endpoints_send_report(ev->usage_page); } -static int hid_listener_keycode_released(uint16_t usage_page, uint32_t keycode, - zmk_mod_flags_t implicit_modifiers) { +static int hid_listener_keycode_released(const struct keycode_state_changed *ev) { int err; - LOG_DBG("usage_page 0x%02X keycode 0x%02X mods 0x%02X", usage_page, keycode, - implicit_modifiers); - switch (usage_page) { + LOG_DBG("usage_page 0x%02X keycode 0x%02X mods 0x%02X", ev->usage_page, ev->keycode, + ev->implicit_modifiers); + switch (ev->usage_page) { case HID_USAGE_KEY: - err = zmk_hid_keyboard_release(keycode); + err = zmk_hid_keyboard_release(ev->keycode); if (err) { LOG_ERR("Unable to release keycode"); return err; } break; case HID_USAGE_CONSUMER: - err = zmk_hid_consumer_release(keycode); + err = zmk_hid_consumer_release(ev->keycode); if (err) { LOG_ERR("Unable to release keycode"); return err; @@ -67,16 +65,16 @@ static int hid_listener_keycode_released(uint16_t usage_page, uint32_t keycode, // Solving this would require keeping track of which key's implicit modifiers are currently // active and only releasing modifiers at that time. zmk_hid_implicit_modifiers_release(); - return zmk_endpoints_send_report(usage_page); + return zmk_endpoints_send_report(ev->usage_page); } int hid_listener(const zmk_event_t *eh) { const struct zmk_keycode_state_changed *ev = as_zmk_keycode_state_changed(eh); if (ev) { if (ev->state) { - hid_listener_keycode_pressed(ev->usage_page, ev->keycode, ev->implicit_modifiers); + hid_listener_keycode_pressed(ev); } else { - hid_listener_keycode_released(ev->usage_page, ev->keycode, ev->implicit_modifiers); + hid_listener_keycode_released(ev); } } return 0;