initial implementation for modifiers

https://github.com/zmkfirmware/zmk/issues/86
This commit is contained in:
Okke Formsma
2020-09-02 22:30:09 +02:00
committed by Pete Johanson
parent a9e729b427
commit 4f258efbf1
77 changed files with 597 additions and 229 deletions

View File

@@ -7,22 +7,24 @@
#pragma once
#include <zephyr.h>
#include <dt-bindings/zmk/keys.h>
#include <zmk/event-manager.h>
struct keycode_state_changed {
struct zmk_event_header header;
u8_t usage_page;
u32_t keycode;
u8_t implicit_modifiers;
bool state;
};
ZMK_EVENT_DECLARE(keycode_state_changed);
inline struct keycode_state_changed *create_keycode_state_changed(u8_t usage_page, u32_t keycode,
bool state) {
static inline struct keycode_state_changed *create_keycode_state_changed(u8_t usage_page, u32_t keycode, bool state) {
struct keycode_state_changed *ev = new_keycode_state_changed();
ev->usage_page = usage_page;
ev->keycode = keycode;
ev->keycode = STRIP_MODS(keycode);
ev->implicit_modifiers = SELECT_MODS(keycode);
ev->state = state;
return ev;
}
}

View File

@@ -164,8 +164,8 @@ struct zmk_hid_consumer_report {
int zmk_hid_register_mod(zmk_mod modifier);
int zmk_hid_unregister_mod(zmk_mod modifier);
int zmk_hid_register_mods(zmk_mod_flags modifiers);
int zmk_hid_unregister_mods(zmk_mod_flags modifiers);
int zmk_hid_implicit_modifiers_press(zmk_mod_flags implicit_modifiers);
int zmk_hid_implicit_modifiers_release();
int zmk_hid_keypad_press(zmk_key key);
int zmk_hid_keypad_release(zmk_key key);
void zmk_hid_keypad_clear();