diff options
Diffstat (limited to 'app/include/zmk')
-rw-r--r-- | app/include/zmk/ble.h | 2 | ||||
-rw-r--r-- | app/include/zmk/event-manager.h | 23 | ||||
-rw-r--r-- | app/include/zmk/keymap.h | 2 | ||||
-rw-r--r-- | app/include/zmk/kscan-mock.h | 8 |
4 files changed, 23 insertions, 12 deletions
diff --git a/app/include/zmk/ble.h b/app/include/zmk/ble.h index a77237d..e760ed7 100644 --- a/app/include/zmk/ble.h +++ b/app/include/zmk/ble.h @@ -3,5 +3,5 @@ #include <zmk/keys.h> -int zmk_ble_init(); +int zmk_ble_unpair_all(); bool zmk_ble_handle_key_user(struct zmk_key_event *key_event); diff --git a/app/include/zmk/event-manager.h b/app/include/zmk/event-manager.h index 2ef55e9..d9a56a4 100644 --- a/app/include/zmk/event-manager.h +++ b/app/include/zmk/event-manager.h @@ -17,8 +17,12 @@ struct zmk_event_type struct zmk_event_header { const struct zmk_event_type* event; + u8_t last_listener_index; }; +#define ZMK_EV_EVENT_HANDLED 1 +#define ZMK_EV_EVENT_CAPTURED 2 + typedef int (*zmk_listener_callback_t)(const struct zmk_event_header *eh); struct zmk_listener { @@ -33,7 +37,7 @@ struct zmk_event_subscription { #define ZMK_EVENT_DECLARE(event_type) \ struct event_type* new_##event_type(); \ bool is_##event_type(const struct zmk_event_header *eh); \ - const struct event_type* cast_##event_type(const struct zmk_event_header *eh); \ + struct event_type* cast_##event_type(const struct zmk_event_header *eh); \ extern const struct zmk_event_type zmk_event_##event_type; #define ZMK_EVENT_IMPL(event_type) \ @@ -49,8 +53,8 @@ struct zmk_event_subscription { bool is_##event_type(const struct zmk_event_header *eh) { \ return eh->event == &zmk_event_##event_type; \ }; \ - const struct event_type* cast_##event_type(const struct zmk_event_header *eh) {\ - return (const struct event_type*)eh; \ + struct event_type* cast_##event_type(const struct zmk_event_header *eh) {\ + return (struct event_type*)eh; \ }; @@ -68,4 +72,17 @@ struct zmk_event_subscription { #define ZMK_EVENT_RAISE(ev) \ zmk_event_manager_raise((struct zmk_event_header *)ev); +#define ZMK_EVENT_RAISE_AFTER(ev, mod) \ + zmk_event_manager_raise_after((struct zmk_event_header *)ev, &zmk_listener_##mod); + + +#define ZMK_EVENT_RAISE_AT(ev, mod) \ + zmk_event_manager_raise_at((struct zmk_event_header *)ev, &zmk_listener_##mod); + +#define ZMK_EVENT_RELEASE(ev) \ + zmk_event_manager_release((struct zmk_event_header *)ev); + int zmk_event_manager_raise(struct zmk_event_header *event); +int zmk_event_manager_raise_after(struct zmk_event_header *event, const struct zmk_listener *listener); +int zmk_event_manager_raise_at(struct zmk_event_header *event, const struct zmk_listener *listener); +int zmk_event_manager_release(struct zmk_event_header *event); diff --git a/app/include/zmk/keymap.h b/app/include/zmk/keymap.h index 4a6bb37..c1f6393 100644 --- a/app/include/zmk/keymap.h +++ b/app/include/zmk/keymap.h @@ -1,6 +1,8 @@ #pragma once +bool zmk_keymap_layer_active(u8_t layer); int zmk_keymap_layer_activate(u8_t layer); int zmk_keymap_layer_deactivate(u8_t layer); +int zmk_keymap_layer_toggle(u8_t layer); int zmk_keymap_position_state_changed(u32_t position, bool pressed); diff --git a/app/include/zmk/kscan-mock.h b/app/include/zmk/kscan-mock.h deleted file mode 100644 index d481899..0000000 --- a/app/include/zmk/kscan-mock.h +++ /dev/null @@ -1,8 +0,0 @@ -#pragma once - -#define ZMK_MOCK_IS_PRESS(v) ((v & (0x01 << 31)) != 0) -#define ZMK_MOCK_PRESS(row, col, msec) (row + (col << 8) + (msec << 16) + (0x01 << 31)) -#define ZMK_MOCK_RELEASE(row, col, msec) (row + (col << 8) + (msec << 16)) -#define ZMK_MOCK_ROW(v) (v & 0xFF) -#define ZMK_MOCK_COL(v) ((v >> 8) & 0xFF) -#define ZMK_MOCK_MSEC(v) ((v & ~(0x01 << 31)) >> 16) |