refactor(app): change HID usages to 32-bit (page + id) by definition

Improves readability of `keys.h` and lays the groundwork for upcoming improvements.

PR: #382
This commit is contained in:
innovaker 2020-11-09 13:33:43 +00:00
parent e2d51e8b27
commit c66557aa58
5 changed files with 8028 additions and 2952 deletions

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -24,7 +24,7 @@ static const uint8_t zmk_hid_report_desc[] = {
HID_USAGE_GD, HID_USAGE_GD,
/* USAGE (Keyboard) */ /* USAGE (Keyboard) */
HID_LI_USAGE, HID_LI_USAGE,
HID_USAGE_GD_KEYBOARD, HID_USAGE_ID(HID_USAGE_GD_KEYBOARD),
/* COLLECTION (Application) */ /* COLLECTION (Application) */
HID_MI_COLLECTION, HID_MI_COLLECTION,
COLLECTION_APPLICATION, COLLECTION_APPLICATION,
@ -36,10 +36,10 @@ static const uint8_t zmk_hid_report_desc[] = {
HID_USAGE_KEY, HID_USAGE_KEY,
/* USAGE_MINIMUM (Keyboard LeftControl) */ /* USAGE_MINIMUM (Keyboard LeftControl) */
HID_LI_USAGE_MIN(1), HID_LI_USAGE_MIN(1),
HID_USAGE_KEY_KEYBOARD_LEFTCONTROL, HID_USAGE_ID(HID_USAGE_KEY_KEYBOARD_LEFTCONTROL),
/* USAGE_MAXIMUM (Keyboard Right GUI) */ /* USAGE_MAXIMUM (Keyboard Right GUI) */
HID_LI_USAGE_MAX(1), HID_LI_USAGE_MAX(1),
HID_USAGE_KEY_KEYBOARD_RIGHT_GUI, HID_USAGE_ID(HID_USAGE_KEY_KEYBOARD_RIGHT_GUI),
/* LOGICAL_MINIMUM (0) */ /* LOGICAL_MINIMUM (0) */
HID_GI_LOGICAL_MIN(1), HID_GI_LOGICAL_MIN(1),
0x00, 0x00,
@ -102,7 +102,7 @@ static const uint8_t zmk_hid_report_desc[] = {
HID_USAGE_CONSUMER, HID_USAGE_CONSUMER,
/* USAGE (Consumer Control) */ /* USAGE (Consumer Control) */
HID_LI_USAGE, HID_LI_USAGE,
HID_USAGE_CONSUMER_CONSUMER_CONTROL, HID_USAGE_ID(HID_USAGE_CONSUMER_CONSUMER_CONTROL),
/* Consumer Page */ /* Consumer Page */
HID_MI_COLLECTION, HID_MI_COLLECTION,
COLLECTION_APPLICATION, COLLECTION_APPLICATION,

View file

@ -429,8 +429,9 @@ static int position_state_changed_listener(const struct zmk_event_header *eh) {
} }
static inline bool only_mods(struct keycode_state_changed *ev) { static inline bool only_mods(struct keycode_state_changed *ev) {
return ev->usage_page == HID_USAGE_KEY && ev->keycode >= HID_USAGE_KEY_KEYBOARD_LEFTCONTROL && return ev->usage_page == HID_USAGE_KEY &&
ev->keycode <= HID_USAGE_KEY_KEYBOARD_RIGHT_GUI; ev->keycode >= HID_USAGE_ID(HID_USAGE_KEY_KEYBOARD_LEFTCONTROL) &&
ev->keycode <= HID_USAGE_ID(HID_USAGE_KEY_KEYBOARD_RIGHT_GUI);
} }
static int keycode_state_changed_listener(const struct zmk_event_header *eh) { static int keycode_state_changed_listener(const struct zmk_event_header *eh) {

View file

@ -78,16 +78,18 @@ int zmk_hid_implicit_modifiers_release() {
} }
int zmk_hid_keyboard_press(zmk_key code) { int zmk_hid_keyboard_press(zmk_key code) {
if (code >= HID_USAGE_KEY_KEYBOARD_LEFTCONTROL && code <= HID_USAGE_KEY_KEYBOARD_RIGHT_GUI) { if (code >= HID_USAGE_ID(HID_USAGE_KEY_KEYBOARD_LEFTCONTROL) &&
return zmk_hid_register_mod(code - HID_USAGE_KEY_KEYBOARD_LEFTCONTROL); code <= HID_USAGE_ID(HID_USAGE_KEY_KEYBOARD_RIGHT_GUI)) {
return zmk_hid_register_mod(code - HID_USAGE_ID(HID_USAGE_KEY_KEYBOARD_LEFTCONTROL));
} }
TOGGLE_KEYBOARD(0U, code); TOGGLE_KEYBOARD(0U, code);
return 0; return 0;
}; };
int zmk_hid_keyboard_release(zmk_key code) { int zmk_hid_keyboard_release(zmk_key code) {
if (code >= HID_USAGE_KEY_KEYBOARD_LEFTCONTROL && code <= HID_USAGE_KEY_KEYBOARD_RIGHT_GUI) { if (code >= HID_USAGE_ID(HID_USAGE_KEY_KEYBOARD_LEFTCONTROL) &&
return zmk_hid_unregister_mod(code - HID_USAGE_KEY_KEYBOARD_LEFTCONTROL); code <= HID_USAGE_ID(HID_USAGE_KEY_KEYBOARD_RIGHT_GUI)) {
return zmk_hid_unregister_mod(code - HID_USAGE_ID(HID_USAGE_KEY_KEYBOARD_LEFTCONTROL));
} }
TOGGLE_KEYBOARD(code, 0U); TOGGLE_KEYBOARD(code, 0U);
return 0; return 0;