From 8b5862a22796b87b20dd090d67ba909ed1377b3e Mon Sep 17 00:00:00 2001 From: "git@jrhrsmit.nl" Date: Thu, 7 Oct 2021 09:54:13 +0200 Subject: [PATCH] tidy up, fix underflow again --- app/Kconfig | 2 +- app/src/rgb_underglow.c | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/app/Kconfig b/app/Kconfig index 88d62cd9..6c14f9e5 100644 --- a/app/Kconfig +++ b/app/Kconfig @@ -294,7 +294,7 @@ config ZMK_RGB_UNDERGLOW_BRT_START config ZMK_RGB_UNDERGLOW_BRT_MIN int "RGB underglow minimum brightness value in percent" - range 0 100 + range 0 100 default 0 config ZMK_RGB_UNDERGLOW_BRT_MAX diff --git a/app/src/rgb_underglow.c b/app/src/rgb_underglow.c index 3bfd8392..60388936 100644 --- a/app/src/rgb_underglow.c +++ b/app/src/rgb_underglow.c @@ -58,9 +58,8 @@ static struct led_rgb hsb_to_rgb(struct zmk_led_hsb hsb) { double r, g, b; uint8_t i = hsb.h / 60; - double v = ((float)hsb.b * - (float)(CONFIG_ZMK_RGB_UNDERGLOW_BRT_MAX - CONFIG_ZMK_RGB_UNDERGLOW_BRT_MIN) / - (float)BRT_MAX + + double v = ((float)hsb.b / (float)BRT_MAX * + (float)(CONFIG_ZMK_RGB_UNDERGLOW_BRT_MAX - CONFIG_ZMK_RGB_UNDERGLOW_BRT_MIN) + (float)CONFIG_ZMK_RGB_UNDERGLOW_BRT_MIN) / (float)BRT_MAX; double s = hsb.s / ((float)SAT_MAX); @@ -253,7 +252,6 @@ static int zmk_rgb_underglow_init(const struct device *_arg) { k_delayed_work_init(&underglow_save_work, zmk_rgb_underglow_save_state_work); settings_load_subtree("rgb/underglow"); - #endif k_timer_start(&underglow_tick, K_NO_WAIT, K_MSEC(50)); @@ -374,12 +372,15 @@ struct zmk_led_hsb zmk_rgb_underglow_calc_sat(int direction) { struct zmk_led_hsb zmk_rgb_underglow_calc_brt(int direction) { struct zmk_led_hsb color = state.color; - int b = color.b; - b += (direction * CONFIG_ZMK_RGB_UNDERGLOW_BRT_STEP); - if (b > BRT_MAX) { + + int b = color.b + (direction * CONFIG_ZMK_RGB_UNDERGLOW_BRT_STEP); + if (b < 0) { + b = 0; + } else if (b > BRT_MAX) { b = BRT_MAX; } color.b = b; + return color; }