diff options
author | Pete Johanson <peter@peterjohanson.com> | 2020-06-21 22:46:27 -0400 |
---|---|---|
committer | Pete Johanson <peter@peterjohanson.com> | 2020-06-21 22:46:27 -0400 |
commit | ec663310c1682f55578b1b6d886ebcae4965425c (patch) | |
tree | 29d3d21dc9136884e9c04baa7ec84a4fc9778e2d /app/src | |
parent | c6625169e5f6cfc8641fc08662f59935abf11588 (diff) |
Clean up after refactor, better HID constants.
Diffstat (limited to 'app/src')
-rw-r--r-- | app/src/ble.c | 4 | ||||
-rw-r--r-- | app/src/handlers.c | 88 | ||||
-rw-r--r-- | app/src/hid.c | 42 |
3 files changed, 23 insertions, 111 deletions
diff --git a/app/src/ble.c b/app/src/ble.c index 51607c6..0e6c5f2 100644 --- a/app/src/ble.c +++ b/app/src/ble.c @@ -168,12 +168,12 @@ bool zmk_ble_handle_key_user(struct zmk_key_event *key_event) return true; } - if (key < KC_1 || key > KC_0) + if (key < NUM_1 || key > NUM_0) { return true; } - u32_t val = (key == KC_0) ? 0 : (key - KC_1 + 1); + u32_t val = (key == NUM_0) ? 0 : (key - NUM_1 + 1); passkey_entries[passkey_digit++] = val; diff --git a/app/src/handlers.c b/app/src/handlers.c deleted file mode 100644 index 464b1ab..0000000 --- a/app/src/handlers.c +++ /dev/null @@ -1,88 +0,0 @@ - -#include <zmk/ble.h> -#include <zmk/handlers.h> -#include <zmk/endpoints.h> -#include <zmk/hid.h> -#include <zmk/matrix.h> - -#ifdef CONFIG_ZMK_ACTION_MOD_TAP -u16_t action_effect_pending = 0; -#endif - -__attribute__((weak)) bool zmk_handle_key_user(struct zmk_key_event *key_event) -{ - return true; -}; - -bool zmk_handle_action(zmk_action action, struct zmk_key_event *key_event) -{ - zmk_mod mods = ZK_MODS(key_event->key); - u8_t flattened_index = (key_event->row * ZMK_MATRIX_COLS) + key_event->column; - switch (action) - { -#ifdef CONFIG_ZMK_ACTION_MOD_TAP - case ZMK_ACTION_MOD_TAP: - if (key_event->pressed) - { - WRITE_BIT(action_effect_pending, flattened_index, true); - zmk_hid_register_mods(mods); - } - else - { - zmk_hid_unregister_mods(mods); - if (action_effect_pending & BIT(flattened_index)) - { - struct zmk_key_event non_mod_event = - { - .row = key_event->row, - .column = key_event->column, - .key = ZK_KEY(key_event->key), - .pressed = true}; - - zmk_handle_key(non_mod_event); - // A small sleep is needed to ensure device layer sends initial - // key, before we send the release. - k_msleep(10); - non_mod_event.pressed = false; - zmk_handle_key(non_mod_event); - } - else - { - // Since not sending a keycode, at least send the report w/ the mod removed - zmk_endpoints_send_report(Keypad); - } - } - break; -#endif - } - return false; -}; - -void zmk_handle_key(struct zmk_key_event key_event) -{ - zmk_action action = ZK_ACTION(key_event.key); - - if (!zmk_handle_key_user(&key_event)) - { - return; - } - - if (action && !zmk_handle_action(action, &key_event)) - { - return; - } - -#ifdef CONFIG_ZMK_ACTION_MOD_TAP - action_effect_pending = 0; -#endif - -#ifdef CONFIG_ZMK_BLE - /* Used for intercepting key presses when doing passkey verification */ - if (!zmk_ble_handle_key_user(&key_event)) - { - return; - } -#endif /* CONFIG_ZMK_BLE */ - - zmk_endpoints_send_key_event(key_event); -}; diff --git a/app/src/hid.c b/app/src/hid.c index b3d47cf..2bcb621 100644 --- a/app/src/hid.c +++ b/app/src/hid.c @@ -66,19 +66,19 @@ int zmk_hid_unregister_mods(zmk_mod_flags modifiers) enum zmk_hid_report_changes zmk_hid_press_key(zmk_key code) { - if (code >= KC_LCTL && code <= KC_RGUI) + if (code >= LCTL && code <= RGUI) { - return zmk_hid_register_mod(code - KC_LCTL); + return zmk_hid_register_mod(code - LCTL); } - if (ZK_IS_CONSUMER(code)) - { - LOG_DBG("Toggling a consumer key!"); - TOGGLE_CONSUMER(code, true); - return Consumer; - } - else - { + // if (ZK_IS_CONSUMER(code)) + // { + // LOG_DBG("Toggling a consumer key!"); + // TOGGLE_CONSUMER(code, true); + // return Consumer; + // } + // else + // { if (code > ZMK_HID_MAX_KEYCODE) { return -EINVAL; @@ -89,23 +89,23 @@ enum zmk_hid_report_changes zmk_hid_press_key(zmk_key code) TOGGLE_KEY(code, true); return Keypad; - } + // } }; enum zmk_hid_report_changes zmk_hid_release_key(zmk_key code) { - if (code >= KC_LCTL && code <= KC_RGUI) + if (code >= LCTL && code <= RGUI) { - return zmk_hid_unregister_mod(code - KC_LCTL); + return zmk_hid_unregister_mod(code - LCTL); } - if (ZK_IS_CONSUMER(code)) - { - TOGGLE_CONSUMER(code, false); - return Consumer; - } - else - { + // if (ZK_IS_CONSUMER(code)) + // { + // TOGGLE_CONSUMER(code, false); + // return Consumer; + // } + // else + // { if (code > ZMK_HID_MAX_KEYCODE) { return -EINVAL; @@ -116,7 +116,7 @@ enum zmk_hid_report_changes zmk_hid_release_key(zmk_key code) TOGGLE_KEY(code, false); return Keypad; - } + // } }; struct zmk_hid_keypad_report *zmk_hid_get_keypad_report() |