From 2427a4ab3308523200f9419316a10a75f237bb6c Mon Sep 17 00:00:00 2001 From: KemoNine Date: Wed, 9 Dec 2020 09:35:57 -0500 Subject: feature(keymaps): Keymap layer state event, highest layer API * Fire an event w/ layer number, state, and timestamp when a layer is activated/deactivated. * Add `zmk_keymap_highest_layer_active()` query. Co-authored-by: KemoNine --- app/include/zmk/events/layer-state-changed.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 app/include/zmk/events/layer-state-changed.h (limited to 'app/include/zmk/events') diff --git a/app/include/zmk/events/layer-state-changed.h b/app/include/zmk/events/layer-state-changed.h new file mode 100644 index 0000000..dc13ed6 --- /dev/null +++ b/app/include/zmk/events/layer-state-changed.h @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#pragma once + +#include +#include + +struct layer_state_changed { + struct zmk_event_header header; + u8_t layer; + bool state; + s64_t timestamp; +}; + +ZMK_EVENT_DECLARE(layer_state_changed); + +static inline struct layer_state_changed *create_layer_state_changed(u8_t layer, bool state) { + struct layer_state_changed *ev = new_layer_state_changed(); + ev->layer = layer; + ev->state = state; + ev->timestamp = k_uptime_get(); + + return ev; +} -- cgit v1.2.3