diff options
Diffstat (limited to 'app/src')
-rw-r--r-- | app/src/behaviors/behavior_hold_tap.c | 4 | ||||
-rw-r--r-- | app/src/behaviors/behavior_key_press.c | 28 | ||||
-rw-r--r-- | app/src/behaviors/behavior_sensor_rotate_key_press.c | 35 | ||||
-rw-r--r-- | app/src/hid.c | 9 |
4 files changed, 21 insertions, 55 deletions
diff --git a/app/src/behaviors/behavior_hold_tap.c b/app/src/behaviors/behavior_hold_tap.c index c53750a..1dc665d 100644 --- a/app/src/behaviors/behavior_hold_tap.c +++ b/app/src/behaviors/behavior_hold_tap.c @@ -429,8 +429,8 @@ static int position_state_changed_listener(const struct zmk_event_header *eh) { } static inline bool only_mods(struct keycode_state_changed *ev) { - return ev->usage_page == HID_USAGE_KEY && ev->keycode >= LEFT_CONTROL && - ev->keycode <= RIGHT_GUI; + return ev->usage_page == HID_USAGE_KEY && ev->keycode >= HID_USAGE_KEY_KEYBOARD_LEFTCONTROL && + ev->keycode <= HID_USAGE_KEY_KEYBOARD_RIGHT_GUI; } static int keycode_state_changed_listener(const struct zmk_event_header *eh) { diff --git a/app/src/behaviors/behavior_key_press.c b/app/src/behaviors/behavior_key_press.c index 923b098..bfcdbfc 100644 --- a/app/src/behaviors/behavior_key_press.c +++ b/app/src/behaviors/behavior_key_press.c @@ -16,42 +16,28 @@ LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); -struct behavior_key_press_config { - u8_t usage_page; -}; -struct behavior_key_press_data {}; - static int behavior_key_press_init(struct device *dev) { return 0; }; static int on_keymap_binding_pressed(struct zmk_behavior_binding *binding, struct zmk_behavior_binding_event event) { - struct device *dev = device_get_binding(binding->behavior_dev); - const struct behavior_key_press_config *cfg = dev->config_info; - LOG_DBG("position %d usage_page 0x%02X keycode 0x%02X", event.position, cfg->usage_page, - binding->param1); + LOG_DBG("position %d keycode 0x%02X", event.position, binding->param1); - return ZMK_EVENT_RAISE(create_keycode_state_changed(cfg->usage_page, binding->param1, true)); + return ZMK_EVENT_RAISE(keycode_state_changed_from_encoded(binding->param1, true)); } static int on_keymap_binding_released(struct zmk_behavior_binding *binding, struct zmk_behavior_binding_event event) { - struct device *dev = device_get_binding(binding->behavior_dev); - const struct behavior_key_press_config *cfg = dev->config_info; - LOG_DBG("position %d usage_page 0x%02X keycode 0x%02X", event.position, cfg->usage_page, - binding->param1); + LOG_DBG("position %d keycode 0x%02X", event.position, binding->param1); - return ZMK_EVENT_RAISE(create_keycode_state_changed(cfg->usage_page, binding->param1, false)); + return ZMK_EVENT_RAISE(keycode_state_changed_from_encoded(binding->param1, false)); } static const struct behavior_driver_api behavior_key_press_driver_api = { .binding_pressed = on_keymap_binding_pressed, .binding_released = on_keymap_binding_released}; #define KP_INST(n) \ - static const struct behavior_key_press_config behavior_key_press_config_##n = { \ - .usage_page = DT_INST_PROP(n, usage_page)}; \ - static struct behavior_key_press_data behavior_key_press_data_##n; \ - DEVICE_AND_API_INIT(behavior_key_press_##n, DT_INST_LABEL(n), behavior_key_press_init, \ - &behavior_key_press_data_##n, &behavior_key_press_config_##n, APPLICATION, \ - CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, &behavior_key_press_driver_api); + DEVICE_AND_API_INIT(behavior_key_press_##n, DT_INST_LABEL(n), behavior_key_press_init, NULL, \ + NULL, APPLICATION, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, \ + &behavior_key_press_driver_api); DT_INST_FOREACH_STATUS_OKAY(KP_INST) diff --git a/app/src/behaviors/behavior_sensor_rotate_key_press.c b/app/src/behaviors/behavior_sensor_rotate_key_press.c index 71c4376..d0a2296 100644 --- a/app/src/behaviors/behavior_sensor_rotate_key_press.c +++ b/app/src/behaviors/behavior_sensor_rotate_key_press.c @@ -16,23 +16,14 @@ LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); -struct behavior_sensor_rotate_key_press_config { - u8_t usage_page; -}; -struct behavior_sensor_rotate_key_press_data {}; - static int behavior_sensor_rotate_key_press_init(struct device *dev) { return 0; }; static int on_sensor_binding_triggered(struct zmk_behavior_binding *binding, struct device *sensor) { - struct device *dev = device_get_binding(binding->behavior_dev); - const struct behavior_sensor_rotate_key_press_config *cfg = dev->config_info; struct sensor_value value; int err; u32_t keycode; - struct keycode_state_changed *ev; - LOG_DBG("usage_page 0x%02X inc keycode 0x%02X dec keycode 0x%02X", cfg->usage_page, - binding->param1, binding->param2); + LOG_DBG("inc keycode 0x%02X dec keycode 0x%02X", binding->param1, binding->param2); err = sensor_channel_get(sensor, SENSOR_CHAN_ROTATION, &value); @@ -54,33 +45,21 @@ static int on_sensor_binding_triggered(struct zmk_behavior_binding *binding, LOG_DBG("SEND %d", keycode); - ev = new_keycode_state_changed(); - ev->usage_page = cfg->usage_page; - ev->keycode = keycode; - ev->state = true; - ZMK_EVENT_RAISE(ev); + ZMK_EVENT_RAISE(keycode_state_changed_from_encoded(keycode, true)); // TODO: Better way to do this? k_msleep(5); - ev = new_keycode_state_changed(); - ev->usage_page = cfg->usage_page; - ev->keycode = keycode; - ev->state = false; - return ZMK_EVENT_RAISE(ev); + return ZMK_EVENT_RAISE(keycode_state_changed_from_encoded(keycode, false)); } static const struct behavior_driver_api behavior_sensor_rotate_key_press_driver_api = { .sensor_binding_triggered = on_sensor_binding_triggered}; #define KP_INST(n) \ - static const struct behavior_sensor_rotate_key_press_config \ - behavior_sensor_rotate_key_press_config_##n = {.usage_page = DT_INST_PROP(n, usage_page)}; \ - static struct behavior_sensor_rotate_key_press_data behavior_sensor_rotate_key_press_data_##n; \ - DEVICE_AND_API_INIT( \ - behavior_sensor_rotate_key_press_##n, DT_INST_LABEL(n), \ - behavior_sensor_rotate_key_press_init, &behavior_sensor_rotate_key_press_data_##n, \ - &behavior_sensor_rotate_key_press_config_##n, APPLICATION, \ - CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, &behavior_sensor_rotate_key_press_driver_api); + DEVICE_AND_API_INIT(behavior_sensor_rotate_key_press_##n, DT_INST_LABEL(n), \ + behavior_sensor_rotate_key_press_init, NULL, NULL, APPLICATION, \ + CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, \ + &behavior_sensor_rotate_key_press_driver_api); DT_INST_FOREACH_STATUS_OKAY(KP_INST)
\ No newline at end of file diff --git a/app/src/hid.c b/app/src/hid.c index aeb1a55..7e733d9 100644 --- a/app/src/hid.c +++ b/app/src/hid.c @@ -9,6 +9,7 @@ LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); #include <zmk/hid.h> #include <dt-bindings/zmk/modifiers.h> +#include <dt-bindings/zmk/hid_usage_pages.h> static struct zmk_hid_keypad_report kp_report = { .report_id = 1, .body = {.modifiers = 0, ._reserved = 0, .keys = {0}}}; @@ -78,16 +79,16 @@ int zmk_hid_implicit_modifiers_release() { } int zmk_hid_keypad_press(zmk_key code) { - if (code >= LEFT_CONTROL && code <= RIGHT_GUI) { - return zmk_hid_register_mod(code - LEFT_CONTROL); + if (code >= HID_USAGE_KEY_KEYBOARD_LEFTCONTROL && code <= HID_USAGE_KEY_KEYBOARD_RIGHT_GUI) { + return zmk_hid_register_mod(code - HID_USAGE_KEY_KEYBOARD_LEFTCONTROL); } TOGGLE_KEYPAD(0U, code); return 0; }; int zmk_hid_keypad_release(zmk_key code) { - if (code >= LEFT_CONTROL && code <= RIGHT_GUI) { - return zmk_hid_unregister_mod(code - LEFT_CONTROL); + if (code >= HID_USAGE_KEY_KEYBOARD_LEFTCONTROL && code <= HID_USAGE_KEY_KEYBOARD_RIGHT_GUI) { + return zmk_hid_unregister_mod(code - HID_USAGE_KEY_KEYBOARD_LEFTCONTROL); } TOGGLE_KEYPAD(code, 0U); return 0; |