mirror of https://github.com/zmkfirmware/zmk.git
feat(underglow): add underglow_color_changed event
This commit is contained in:
parent
3672cc4989
commit
240e57b391
|
|
@ -90,6 +90,7 @@ endif()
|
|||
|
||||
target_sources_ifdef(CONFIG_ZMK_RGB_UNDERGLOW app PRIVATE src/behaviors/behavior_rgb_underglow.c)
|
||||
target_sources_ifdef(CONFIG_ZMK_RGB_UNDERGLOW app PRIVATE src/behaviors/behavior_underglow_color.c)
|
||||
target_sources_ifdef(CONFIG_ZMK_RGB_UNDERGLOW app PRIVATE src/events/underglow_color_changed.c)
|
||||
target_sources_ifdef(CONFIG_ZMK_BACKLIGHT app PRIVATE src/behaviors/behavior_backlight.c)
|
||||
|
||||
target_sources_ifdef(CONFIG_ZMK_BATTERY_REPORTING app PRIVATE src/events/battery_state_changed.c)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
* Copyright (c) 2024 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <zmk/event_manager.h>
|
||||
|
||||
struct zmk_underglow_color_changed {
|
||||
uint32_t layers;
|
||||
bool wakeup;
|
||||
};
|
||||
|
||||
ZMK_EVENT_DECLARE(zmk_underglow_color_changed);
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
/*
|
||||
* Copyright (c) 2020 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include <zephyr/kernel.h>
|
||||
#include <zmk/events/underglow_color_changed.h>
|
||||
|
||||
ZMK_EVENT_IMPL(zmk_underglow_color_changed);
|
||||
|
|
@ -29,6 +29,8 @@
|
|||
#include <zmk/event_manager.h>
|
||||
#include <zmk/events/activity_state_changed.h>
|
||||
#include <zmk/events/usb_conn_state_changed.h>
|
||||
#include <zmk/events/underglow_color_changed.h>
|
||||
|
||||
#include <zmk/workqueue.h>
|
||||
#include <zmk/events/split_peripheral_layer_changed.h>
|
||||
|
||||
|
|
@ -666,6 +668,15 @@ static int rgb_underglow_event_listener(const zmk_event_t *eh) {
|
|||
zmk_rgb_underglow_set_layer(layer, true);
|
||||
return 0;
|
||||
}
|
||||
if (as_zmk_underglow_color_changed(eh)) {
|
||||
const struct zmk_underglow_color_changed *ev = as_zmk_underglow_color_changed(eh);
|
||||
uint8_t layer = rgb_underglow_top_layer();
|
||||
LOG_DBG("refresh layers %d, current: %d, wakeup: %d", ev->layers, layer, ev->wakeup);
|
||||
if ((ev->layers & (BIT(layer))) == BIT(layer)) {
|
||||
zmk_rgb_underglow_set_layer(rgb_underglow_top_layer(), ev->wakeup);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#endif /* UNDERGLOW_LAYER_ENABLED */
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_USB)
|
||||
|
|
@ -692,6 +703,7 @@ ZMK_SUBSCRIPTION(rgb_underglow, zmk_usb_conn_state_changed);
|
|||
|
||||
#if IS_ENABLED(UNDERGLOW_LAYER_ENABLED)
|
||||
ZMK_SUBSCRIPTION(rgb_underglow, zmk_split_peripheral_layer_changed);
|
||||
ZMK_SUBSCRIPTION(rgb_underglow, zmk_underglow_color_changed);
|
||||
#endif
|
||||
|
||||
SYS_INIT(zmk_rgb_underglow_init, APPLICATION, CONFIG_APPLICATION_INIT_PRIORITY);
|
||||
|
|
|
|||
Loading…
Reference in New Issue