summaryrefslogtreecommitdiff
path: root/app/include/zmk
diff options
context:
space:
mode:
Diffstat (limited to 'app/include/zmk')
-rw-r--r--app/include/zmk/ble.h2
-rw-r--r--app/include/zmk/event-manager.h23
-rw-r--r--app/include/zmk/keymap.h2
-rw-r--r--app/include/zmk/kscan-mock.h8
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)