diff options
author | Nick <nick.win999@gmail.com> | 2020-08-23 10:33:19 -0500 |
---|---|---|
committer | Nick <nick.win999@gmail.com> | 2020-08-23 10:33:19 -0500 |
commit | c5c21022a23cae3fecaf17e13d18d7d1ebd5f150 (patch) | |
tree | cfc3709e4254d51f6cafc42cd81455d75fa40d60 /app/src | |
parent | 74fd4fc997c0cf78cc9acabdd61466fa4857e7ba (diff) |
Move settings load
Diffstat (limited to 'app/src')
-rw-r--r-- | app/src/rgb_underglow.c | 40 | ||||
-rw-r--r-- | app/src/settings.c | 13 |
2 files changed, 35 insertions, 18 deletions
diff --git a/app/src/rgb_underglow.c b/app/src/rgb_underglow.c index 86223b1..3851421 100644 --- a/app/src/rgb_underglow.c +++ b/app/src/rgb_underglow.c @@ -15,7 +15,6 @@ #include <logging/log.h> #include <drivers/led_strip.h> -#include <device.h> LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL); @@ -106,6 +105,16 @@ static struct led_rgb hsb_to_rgb(struct led_hsb hsb) return rgb; } +static void zmk_rgb_underglow_off() +{ + for (int i=0; i<STRIP_NUM_PIXELS; i++) + { + pixels[i] = (struct led_rgb){ r: 0, g: 0, b: 0}; + } + + led_strip_update_rgb(led_strip, pixels, STRIP_NUM_PIXELS); +} + static void zmk_rgb_underglow_effect_solid() { for (int i=0; i<STRIP_NUM_PIXELS; i++) @@ -199,6 +208,15 @@ K_WORK_DEFINE(underglow_work, zmk_rgb_underglow_tick); static void zmk_rgb_underglow_tick_handler(struct k_timer *timer) { + if (!state.on) + { + zmk_rgb_underglow_off(); + + k_timer_stop(timer); + + return; + } + k_work_submit(&underglow_work); } @@ -221,20 +239,12 @@ static int zmk_rgb_underglow_init(struct device *_arg) animation_speed: CONFIG_ZMK_RGB_UNDERGLOW_SPD_START, current_effect: CONFIG_ZMK_RGB_UNDERGLOW_EFF_START, animation_step: 0, -#ifdef CONFIG_ZMK_RGB_UNDERGLOW_ON_START - on: true -#else - on: false -#endif + on: IS_ENABLED(CONFIG_ZMK_RGB_UNDERGLOW_ON_START) }; - settings_subsys_init(); settings_register(&rgb_conf); - settings_load(); - if (state.on) { - k_timer_start(&underglow_tick, K_NO_WAIT, K_MSEC(50)); - } + k_timer_start(&underglow_tick, K_NO_WAIT, K_MSEC(50)); return 0; } @@ -274,13 +284,7 @@ int zmk_rgb_underglow_toggle() state.animation_step = 0; k_timer_start(&underglow_tick, K_NO_WAIT, K_MSEC(50)); } else { - - for (int i=0; i<STRIP_NUM_PIXELS; i++) - { - pixels[i] = (struct led_rgb){ r: 0, g: 0, b: 0}; - } - - led_strip_update_rgb(led_strip, pixels, STRIP_NUM_PIXELS); + zmk_rgb_underglow_off(); k_timer_stop(&underglow_tick); } diff --git a/app/src/settings.c b/app/src/settings.c new file mode 100644 index 0000000..390ede7 --- /dev/null +++ b/app/src/settings.c @@ -0,0 +1,13 @@ +#include <device.h> +#include <init.h> +#include <kernel.h> +#include <settings/settings.h> + +static int zmk_settings_init(struct device *_arg) +{ + return settings_load(); +} + +SYS_INIT(zmk_settings_init, + APPLICATION, + CONFIG_APPLICATION_INIT_PRIORITY); |