diff options
author | innovaker <66737976+innovaker@users.noreply.github.com> | 2020-12-22 15:56:00 +0000 |
---|---|---|
committer | Pete Johanson <peter@peterjohanson.com> | 2020-12-28 01:15:35 -0500 |
commit | 842aa5a842e117b7b00e49258ca0bde44dc0c789 (patch) | |
tree | 5202f081b9af5480610645aa53eab11d45a09105 /app/include/zmk/events/keycode_state_changed.h | |
parent | 6927abee6ef0c604fae1c8544fc933a56be14e77 (diff) |
refactor: replace filename hyphens with underscores
Aligns *.h and *.c to underscore naming convention.
These were kept (with warnings) for backwards compatibility with external boards/shields:
- kscan-mock.h
- matrix-transform.h
They should be removed in the future.
PR: #523
Diffstat (limited to 'app/include/zmk/events/keycode_state_changed.h')
-rw-r--r-- | app/include/zmk/events/keycode_state_changed.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/app/include/zmk/events/keycode_state_changed.h b/app/include/zmk/events/keycode_state_changed.h new file mode 100644 index 0000000..28282b6 --- /dev/null +++ b/app/include/zmk/events/keycode_state_changed.h @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#pragma once + +#include <zephyr.h> +#include <dt-bindings/zmk/modifiers.h> +#include <dt-bindings/zmk/hid_usage_pages.h> +#include <zmk/event_manager.h> +#include <zmk/keys.h> + +struct keycode_state_changed { + struct zmk_event_header header; + uint8_t usage_page; + uint32_t keycode; + uint8_t implicit_modifiers; + bool state; + int64_t timestamp; +}; + +ZMK_EVENT_DECLARE(keycode_state_changed); + +static inline struct keycode_state_changed * +keycode_state_changed_from_encoded(uint32_t encoded, bool pressed, int64_t timestamp) { + uint16_t page = HID_USAGE_PAGE(encoded) & 0xFF; + uint16_t id = HID_USAGE_ID(encoded); + zmk_mod_flags implicit_mods = SELECT_MODS(encoded); + + if (!page) { + page = HID_USAGE_KEY; + } + + struct keycode_state_changed *ev = new_keycode_state_changed(); + ev->usage_page = page; + ev->keycode = id; + ev->implicit_modifiers = implicit_mods; + ev->state = pressed; + ev->timestamp = timestamp; + return ev; +} |