summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOkke Formsma <okke@formsma.nl>2020-12-08 22:14:56 +0100
committerPete Johanson <peter@peterjohanson.com>2021-01-24 23:30:41 -0500
commitdf4a5c8613365a8ee292dedaf345f76c196e4858 (patch)
treec5a3213990c412e5207f1d052c31e16573f6c734
parent89567d3150207836b96030cc85f7267e0c203690 (diff)
refactor(hid_listener): pass event struct instead of parameters
-rw-r--r--app/src/hid_listener.c36
1 files changed, 17 insertions, 19 deletions
diff --git a/app/src/hid_listener.c b/app/src/hid_listener.c
index cd7acc0..127eb52 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 <dt-bindings/zmk/hid_usage_pages.h>
#include <zmk/endpoints.h>
-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;