diff options
Diffstat (limited to 'app/include/zmk')
25 files changed, 218 insertions, 95 deletions
diff --git a/app/include/zmk/behavior.h b/app/include/zmk/behavior.h index 63edcc9..428ae24 100644 --- a/app/include/zmk/behavior.h +++ b/app/include/zmk/behavior.h @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ #pragma once @@ -5,4 +10,10 @@ struct zmk_behavior_binding { char *behavior_dev; u32_t param1; u32_t param2; +}; + +struct zmk_behavior_binding_event { + int layer; + u32_t position; + s64_t timestamp; };
\ No newline at end of file diff --git a/app/include/zmk/ble.h b/app/include/zmk/ble.h index e760ed7..1cf71a7 100644 --- a/app/include/zmk/ble.h +++ b/app/include/zmk/ble.h @@ -1,7 +1,25 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ #pragma once #include <zmk/keys.h> +#include <zmk/ble/profile.h> + +int zmk_ble_clear_bonds(); +int zmk_ble_prof_next(); +int zmk_ble_prof_prev(); +int zmk_ble_prof_select(u8_t index); + +bt_addr_le_t *zmk_ble_active_profile_addr(); +char *zmk_ble_active_profile_name(); int zmk_ble_unpair_all(); bool zmk_ble_handle_key_user(struct zmk_key_event *key_event); + +#if IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL) +void zmk_ble_set_peripheral_addr(bt_addr_le_t *addr); +#endif /* IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL) */
\ No newline at end of file diff --git a/app/include/zmk/ble/profile.h b/app/include/zmk/ble/profile.h new file mode 100644 index 0000000..1df2743 --- /dev/null +++ b/app/include/zmk/ble/profile.h @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#pragma once + +#include <bluetooth/addr.h> + +#define ZMK_BLE_PROFILE_NAME_MAX 15 + +struct zmk_ble_profile { + char name[ZMK_BLE_PROFILE_NAME_MAX]; + bt_addr_le_t peer; +}; diff --git a/app/include/zmk/display.h b/app/include/zmk/display.h index 93ac3ff..def4392 100644 --- a/app/include/zmk/display.h +++ b/app/include/zmk/display.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Peter Johanson <peter@peterjohanson.com> + * Copyright (c) 2020 The ZMK Contributors * * SPDX-License-Identifier: MIT */ diff --git a/app/include/zmk/endpoints.h b/app/include/zmk/endpoints.h index 4c0f442..aad6265 100644 --- a/app/include/zmk/endpoints.h +++ b/app/include/zmk/endpoints.h @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + #pragma once #include <zmk/keys.h> diff --git a/app/include/zmk/event-manager.h b/app/include/zmk/event-manager.h index d9a56a4..4b8f72c 100644 --- a/app/include/zmk/event-manager.h +++ b/app/include/zmk/event-manager.h @@ -1,22 +1,21 @@ /* - * Copyright (c) 2020 Peter Johanson <peter@peterjohanson.com> + * Copyright (c) 2020 The ZMK Contributors * * SPDX-License-Identifier: MIT */ - + #pragma once #include <stddef.h> #include <kernel.h> #include <zephyr/types.h> -struct zmk_event_type -{ +struct zmk_event_type { const char *name; }; struct zmk_event_header { - const struct zmk_event_type* event; + const struct zmk_event_type *event; u8_t last_listener_index; }; @@ -24,8 +23,7 @@ struct zmk_event_header { #define ZMK_EV_EVENT_CAPTURED 2 typedef int (*zmk_listener_callback_t)(const struct zmk_event_header *eh); -struct zmk_listener -{ +struct zmk_listener { zmk_listener_callback_t callback; }; @@ -34,55 +32,50 @@ struct zmk_event_subscription { const struct zmk_listener *listener; }; -#define ZMK_EVENT_DECLARE(event_type) \ - struct event_type* new_##event_type(); \ - bool is_##event_type(const struct zmk_event_header *eh); \ - struct event_type* cast_##event_type(const struct zmk_event_header *eh); \ +#define ZMK_EVENT_DECLARE(event_type) \ + struct event_type *new_##event_type(); \ + bool is_##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) \ - const struct zmk_event_type zmk_event_##event_type = { \ - .name = STRINGIFY(event_type) \ - }; \ - const struct zmk_event_type* zmk_event_ref_##event_type __used __attribute__((__section__(".event_type"))) = &zmk_event_##event_type; \ - struct event_type* new_##event_type() { \ - struct event_type* ev = (struct event_type *) k_malloc(sizeof(struct event_type)); \ - ev->header.event = &zmk_event_##event_type; \ - return ev; \ - }; \ - bool is_##event_type(const struct zmk_event_header *eh) { \ - return eh->event == &zmk_event_##event_type; \ - }; \ - struct event_type* cast_##event_type(const struct zmk_event_header *eh) {\ - return (struct event_type*)eh; \ +#define ZMK_EVENT_IMPL(event_type) \ + const struct zmk_event_type zmk_event_##event_type = {.name = STRINGIFY(event_type)}; \ + const struct zmk_event_type *zmk_event_ref_##event_type __used \ + __attribute__((__section__(".event_type"))) = &zmk_event_##event_type; \ + struct event_type *new_##event_type() { \ + struct event_type *ev = (struct event_type *)k_malloc(sizeof(struct event_type)); \ + ev->header.event = &zmk_event_##event_type; \ + return ev; \ + }; \ + bool is_##event_type(const struct zmk_event_header *eh) { \ + return eh->event == &zmk_event_##event_type; \ + }; \ + struct event_type *cast_##event_type(const struct zmk_event_header *eh) { \ + return (struct event_type *)eh; \ }; - -#define ZMK_LISTENER(mod, cb) \ - const struct zmk_listener zmk_listener_##mod = { \ - .callback = cb \ - }; +#define ZMK_LISTENER(mod, cb) const struct zmk_listener zmk_listener_##mod = {.callback = cb}; -#define ZMK_SUBSCRIPTION(mod, ev_type) \ - const Z_DECL_ALIGN(struct zmk_event_subscription) _CONCAT(_CONCAT(zmk_event_sub_,mod),ev_type) __used __attribute__((__section__(".event_subscription"))) = { \ - .event_type = &zmk_event_##ev_type, \ - .listener = &zmk_listener_##mod, \ +#define ZMK_SUBSCRIPTION(mod, ev_type) \ + const Z_DECL_ALIGN(struct zmk_event_subscription) \ + _CONCAT(_CONCAT(zmk_event_sub_, mod), ev_type) __used \ + __attribute__((__section__(".event_subscription"))) = { \ + .event_type = &zmk_event_##ev_type, \ + .listener = &zmk_listener_##mod, \ }; -#define ZMK_EVENT_RAISE(ev) \ - zmk_event_manager_raise((struct zmk_event_header *)ev); +#define ZMK_EVENT_RAISE(ev) zmk_event_manager_raise((struct zmk_event_header *)ev); -#define ZMK_EVENT_RAISE_AFTER(ev, mod) \ +#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) \ +#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); +#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_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/events/ble-active-profile-changed.h b/app/include/zmk/events/ble-active-profile-changed.h new file mode 100644 index 0000000..1e3a198 --- /dev/null +++ b/app/include/zmk/events/ble-active-profile-changed.h @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#pragma once + +#include <zephyr.h> +#include <zmk/event-manager.h> +#include <device.h> + +#include <zmk/ble/profile.h> + +struct ble_active_profile_changed { + struct zmk_event_header header; + u8_t index; + struct zmk_ble_profile *profile; +}; + +ZMK_EVENT_DECLARE(ble_active_profile_changed); diff --git a/app/include/zmk/events/keycode-state-changed.h b/app/include/zmk/events/keycode-state-changed.h index e12813c..1e2c24e 100644 --- a/app/include/zmk/events/keycode-state-changed.h +++ b/app/include/zmk/events/keycode-state-changed.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Peter Johanson <peter@peterjohanson.com> + * Copyright (c) 2020 The ZMK Contributors * * SPDX-License-Identifier: MIT */ @@ -18,12 +18,11 @@ struct keycode_state_changed { ZMK_EVENT_DECLARE(keycode_state_changed); -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(); +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->state = state; - return ev; }
\ No newline at end of file diff --git a/app/include/zmk/events/modifiers-state-changed.h b/app/include/zmk/events/modifiers-state-changed.h index a17a093..d2e02f8 100644 --- a/app/include/zmk/events/modifiers-state-changed.h +++ b/app/include/zmk/events/modifiers-state-changed.h @@ -1,9 +1,9 @@ /* - * Copyright (c) 2020 Peter Johanson <peter@peterjohanson.com> + * Copyright (c) 2020 The ZMK Contributors * * SPDX-License-Identifier: MIT */ - + #pragma once #include <zephyr.h> @@ -18,9 +18,9 @@ struct modifiers_state_changed { ZMK_EVENT_DECLARE(modifiers_state_changed); -inline struct modifiers_state_changed* create_modifiers_state_changed(zmk_mod_flags modifiers, bool state) -{ - struct modifiers_state_changed* ev = new_modifiers_state_changed(); +inline struct modifiers_state_changed *create_modifiers_state_changed(zmk_mod_flags modifiers, + bool state) { + struct modifiers_state_changed *ev = new_modifiers_state_changed(); ev->modifiers = modifiers; ev->state = state; diff --git a/app/include/zmk/events/position-state-changed.h b/app/include/zmk/events/position-state-changed.h index c91688e..e4cbbbe 100644 --- a/app/include/zmk/events/position-state-changed.h +++ b/app/include/zmk/events/position-state-changed.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Peter Johanson <peter@peterjohanson.com> + * Copyright (c) 2020 The ZMK Contributors * * SPDX-License-Identifier: MIT */ @@ -13,6 +13,7 @@ struct position_state_changed { struct zmk_event_header header; u32_t position; bool state; + s64_t timestamp; }; ZMK_EVENT_DECLARE(position_state_changed);
\ No newline at end of file diff --git a/app/include/zmk/events/sensor-event.h b/app/include/zmk/events/sensor-event.h index f881ac5..a9302a5 100644 --- a/app/include/zmk/events/sensor-event.h +++ b/app/include/zmk/events/sensor-event.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Peter Johanson <peter@peterjohanson.com> + * Copyright (c) 2020 The ZMK Contributors * * SPDX-License-Identifier: MIT */ diff --git a/app/include/zmk/handlers.h b/app/include/zmk/handlers.h index a10851f..7ce1d27 100644 --- a/app/include/zmk/handlers.h +++ b/app/include/zmk/handlers.h @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + #pragma once #include <dt-bindings/zmk/keys.h> diff --git a/app/include/zmk/hid.h b/app/include/zmk/hid.h index 138606a..744de98 100644 --- a/app/include/zmk/hid.h +++ b/app/include/zmk/hid.h @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + #pragma once #include <usb/usb_device.h> @@ -134,25 +140,21 @@ static const u8_t zmk_hid_report_desc[] = { // u8_t keys[6]; // } __packed; -struct zmk_hid_keypad_report_body -{ +struct zmk_hid_keypad_report_body { zmk_mod_flags modifiers; u8_t keys[13]; } __packed; -struct zmk_hid_keypad_report -{ +struct zmk_hid_keypad_report { u8_t report_id; struct zmk_hid_keypad_report_body body; } __packed; -struct zmk_hid_consumer_report_body -{ +struct zmk_hid_consumer_report_body { u8_t keys[6]; } __packed; -struct zmk_hid_consumer_report -{ +struct zmk_hid_consumer_report { u8_t report_id; struct zmk_hid_consumer_report_body body; } __packed; diff --git a/app/include/zmk/hog.h b/app/include/zmk/hog.h index e2f976a..a7dda51 100644 --- a/app/include/zmk/hog.h +++ b/app/include/zmk/hog.h @@ -1,3 +1,8 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ #pragma once diff --git a/app/include/zmk/keymap.h b/app/include/zmk/keymap.h index c1f6393..b8f4969 100644 --- a/app/include/zmk/keymap.h +++ b/app/include/zmk/keymap.h @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + #pragma once bool zmk_keymap_layer_active(u8_t layer); @@ -5,4 +11,4 @@ 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); +int zmk_keymap_position_state_changed(u32_t position, bool pressed, s64_t timestamp); diff --git a/app/include/zmk/keys.h b/app/include/zmk/keys.h index 6966bba..af474b1 100644 --- a/app/include/zmk/keys.h +++ b/app/include/zmk/keys.h @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + #pragma once #include <zephyr.h> @@ -8,8 +14,7 @@ typedef u8_t zmk_action; typedef u8_t zmk_mod; typedef u8_t zmk_mod_flags; -struct zmk_key_event -{ +struct zmk_key_event { u32_t column; u32_t row; zmk_key key; diff --git a/app/include/zmk/kscan.h b/app/include/zmk/kscan.h index ebffccd..3352600 100644 --- a/app/include/zmk/kscan.h +++ b/app/include/zmk/kscan.h @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + #pragma once int zmk_kscan_init(char *name); diff --git a/app/include/zmk/matrix.h b/app/include/zmk/matrix.h index 3088263..b3e2323 100644 --- a/app/include/zmk/matrix.h +++ b/app/include/zmk/matrix.h @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + #pragma once #include <devicetree.h> @@ -9,20 +15,20 @@ #define ZMK_KEYMAP_TRANSFORM_NODE DT_CHOSEN(zmk_matrix_transform) #define ZMK_KEYMAP_LEN DT_PROP_LEN(ZMK_KEYMAP_TRANSFORM_NODE, map) -#define ZMK_MATRIX_ROWS DT_PROP(ZMK_KEYMAP_TRANSFORM_NODE,rows) -#define ZMK_MATRIX_COLS DT_PROP(ZMK_KEYMAP_TRANSFORM_NODE,columns) +#define ZMK_MATRIX_ROWS DT_PROP(ZMK_KEYMAP_TRANSFORM_NODE, rows) +#define ZMK_MATRIX_COLS DT_PROP(ZMK_KEYMAP_TRANSFORM_NODE, columns) #else /* DT_HAS_CHOSEN(zmk_matrix_transform) */ -#if DT_NODE_HAS_PROP(ZMK_MATRIX_NODE_ID,row_gpios) -#define ZMK_MATRIX_ROWS DT_PROP_LEN(ZMK_MATRIX_NODE_ID,row_gpios) -#define ZMK_MATRIX_COLS DT_PROP_LEN(ZMK_MATRIX_NODE_ID,col_gpios) -#elif DT_NODE_HAS_PROP(ZMK_MATRIX_NODE_ID,input_gpios) +#if DT_NODE_HAS_PROP(ZMK_MATRIX_NODE_ID, row_gpios) +#define ZMK_MATRIX_ROWS DT_PROP_LEN(ZMK_MATRIX_NODE_ID, row_gpios) +#define ZMK_MATRIX_COLS DT_PROP_LEN(ZMK_MATRIX_NODE_ID, col_gpios) +#elif DT_NODE_HAS_PROP(ZMK_MATRIX_NODE_ID, input_gpios) #define ZMK_MATRIX_ROWS 1 -#define ZMK_MATRIX_COLS DT_PROP_LEN(ZMK_MATRIX_NODE_ID,input_gpios) +#define ZMK_MATRIX_COLS DT_PROP_LEN(ZMK_MATRIX_NODE_ID, input_gpios) #else -#define ZMK_MATRIX_ROWS DT_PROP(ZMK_MATRIX_NODE_ID,rows) -#define ZMK_MATRIX_COLS DT_PROP(ZMK_MATRIX_NODE_ID,columns) +#define ZMK_MATRIX_ROWS DT_PROP(ZMK_MATRIX_NODE_ID, rows) +#define ZMK_MATRIX_COLS DT_PROP(ZMK_MATRIX_NODE_ID, columns) #endif #define ZMK_KEYMAP_LEN (ZMK_MATRIX_COLS * ZMK_MATRIX_ROWS) diff --git a/app/include/zmk/matrix_transform.h b/app/include/zmk/matrix_transform.h index e9e969a..29c2afc 100644 --- a/app/include/zmk/matrix_transform.h +++ b/app/include/zmk/matrix_transform.h @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + #pragma once u32_t zmk_matrix_transform_row_column_to_position(u32_t row, u32_t column);
\ No newline at end of file diff --git a/app/include/zmk/rgb_underglow.h b/app/include/zmk/rgb_underglow.h index 69e9a9b..94cc32c 100644 --- a/app/include/zmk/rgb_underglow.h +++ b/app/include/zmk/rgb_underglow.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Nick Winans <nick@winans.codes> + * Copyright (c) 2020 The ZMK Contributors * * SPDX-License-Identifier: MIT */ diff --git a/app/include/zmk/sensors.h b/app/include/zmk/sensors.h index c60cd4b..63dcade 100644 --- a/app/include/zmk/sensors.h +++ b/app/include/zmk/sensors.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Peter Johanson <peter@peterjohanson.com> + * Copyright (c) 2020 The ZMK Contributors * * SPDX-License-Identifier: MIT */ diff --git a/app/include/zmk/split/bluetooth/service.h b/app/include/zmk/split/bluetooth/service.h index 954e0cd..c2be512 100644 --- a/app/include/zmk/split/bluetooth/service.h +++ b/app/include/zmk/split/bluetooth/service.h @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + #pragma once int zmk_split_bt_position_pressed(u8_t position); diff --git a/app/include/zmk/split/bluetooth/uuid.h b/app/include/zmk/split/bluetooth/uuid.h index 59f2f71..a31884d 100644 --- a/app/include/zmk/split/bluetooth/uuid.h +++ b/app/include/zmk/split/bluetooth/uuid.h @@ -1,12 +1,17 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + #pragma once #include <bluetooth/uuid.h> #ifndef BT_UUID_NUM_OF_DIGITALS -#define BT_UUID_NUM_OF_DIGITALS BT_UUID_DECLARE_16(0x2909) +#define BT_UUID_NUM_OF_DIGITALS BT_UUID_DECLARE_16(0x2909) #endif -#define ZMK_BT_SPLIT_UUID(num) BT_UUID_128_ENCODE(num, 0x0096, 0x7107, 0xc967, 0xc5cfb1c2482a) +#define ZMK_BT_SPLIT_UUID(num) BT_UUID_128_ENCODE(num, 0x0096, 0x7107, 0xc967, 0xc5cfb1c2482a) #define ZMK_SPLIT_BT_SERVICE_UUID ZMK_BT_SPLIT_UUID(0x00000000) #define ZMK_SPLIT_BT_CHAR_POSITION_STATE_UUID ZMK_BT_SPLIT_UUID(0x00000001) - diff --git a/app/include/zmk/usb.h b/app/include/zmk/usb.h new file mode 100644 index 0000000..452fd54 --- /dev/null +++ b/app/include/zmk/usb.h @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#pragma once + +#include <usb/usb_device.h> +#include <usb/class/usb_hid.h> + +#include <zmk/keys.h> +#include <zmk/hid.h> + +enum usb_dc_status_code zmk_usb_get_status(); + +#ifdef CONFIG_ZMK_USB +int zmk_usb_hid_send_report(u8_t *report, size_t len); +#endif /* CONFIG_ZMK_USB */
\ No newline at end of file diff --git a/app/include/zmk/usb_hid.h b/app/include/zmk/usb_hid.h deleted file mode 100644 index 5d7c744..0000000 --- a/app/include/zmk/usb_hid.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef ZMK_USB_HID -#define ZMK_USB_HID - -#include <usb/usb_device.h> -#include <usb/class/usb_hid.h> - -#include <zmk/keys.h> -#include <zmk/hid.h> - -int zmk_usb_hid_init(); - -int zmk_usb_hid_send_report(u8_t *report, size_t len); - -#endif |