summaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
Diffstat (limited to 'app/src')
-rw-r--r--app/src/behaviors/behavior_hold_tap.c4
-rw-r--r--app/src/behaviors/behavior_key_press.c28
-rw-r--r--app/src/behaviors/behavior_sensor_rotate_key_press.c35
-rw-r--r--app/src/hid.c9
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;