From cb9ac02f6ac6bec59b79d6c502eec998ba1adcad Mon Sep 17 00:00:00 2001 From: casuanoob Date: Tue, 3 Oct 2023 03:43:22 +1100 Subject: [PATCH] 3x5_3 fix RGB Matrix indicators Convert values from HSV to respect brightness settings --- keyboards/bastardkb/dilemma/3x5_3/config.h | 2 +- .../dilemma/3x5_3/keymaps/via/keymap.c | 34 +++++++++++-------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/keyboards/bastardkb/dilemma/3x5_3/config.h b/keyboards/bastardkb/dilemma/3x5_3/config.h index 7a493d2e9fe..aaac4c880a9 100644 --- a/keyboards/bastardkb/dilemma/3x5_3/config.h +++ b/keyboards/bastardkb/dilemma/3x5_3/config.h @@ -51,6 +51,6 @@ # define RGB_MATRIX_FRAMEBUFFER_EFFECTS // Startup values. -# define RGB_MATRIX_DEFAULT_VAL 64 +# define RGB_MATRIX_DEFAULT_VAL 128 # define RGB_MATRIX_DEFAULT_SPD 32 #endif diff --git a/keyboards/bastardkb/dilemma/3x5_3/keymaps/via/keymap.c b/keyboards/bastardkb/dilemma/3x5_3/keymaps/via/keymap.c index 5c49e6d391f..6f0a9eda233 100644 --- a/keyboards/bastardkb/dilemma/3x5_3/keymaps/via/keymap.c +++ b/keyboards/bastardkb/dilemma/3x5_3/keymaps/via/keymap.c @@ -16,6 +16,7 @@ * along with this program. If not, see . */ +#include "color.h" #include QMK_KEYBOARD_H enum dilemma_keymap_layers { @@ -203,45 +204,50 @@ void rgb_matrix_update_pwm_buffers(void); bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { if (host_keyboard_led_state().caps_lock) { for (int i = led_min; i <= led_max; i++) { - if (g_led_config.flags[i] & LED_FLAG_MODIFIER) { - rgb_matrix_set_color(i, RGB_RED); + if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) { + rgb_matrix_set_color(i, rgb_matrix_get_val() + 76, 0x00, 0x00); } } } uint8_t layer = get_highest_layer(layer_state); if (layer > 0) { - RGB rgb; + HSV hsv = rgb_matrix_get_hsv(); switch (get_highest_layer(layer_state)) { case 1: - rgb = (RGB){RGB_BLUE}; + hsv = (HSV){HSV_BLUE}; break; case 2: - rgb = (RGB){RGB_CORAL}; + hsv = (HSV){HSV_AZURE}; break; case 3: - rgb = (RGB){RGB_GREEN}; + hsv = (HSV){HSV_ORANGE}; break; case 4: - rgb = (RGB){RGB_YELLOW}; + hsv = (HSV){HSV_SPRINGGREEN}; break; case 5: - rgb = (RGB){RGB_PINK}; + hsv = (HSV){HSV_TEAL}; break; case 6: - rgb = (RGB){RGB_MAGENTA}; + hsv = (HSV){HSV_PURPLE}; break; case 7: default: - rgb = (RGB){RGB_RED}; + hsv = (HSV){HSV_RED}; break; }; - for (int i = led_min; i <= led_max; i++) { - if ( g_led_config.flags[i] & LED_FLAG_UNDERGLOW) { + if (hsv.v > rgb_matrix_get_val()) { + hsv.v = rgb_matrix_get_val() + 22; + } + RGB rgb = hsv_to_rgb(hsv); + + for (uint8_t i = led_min; i < led_max; i++) { + if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } - }; + } } return false; }; @@ -262,7 +268,7 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { void shutdown_user(void) { #ifdef RGB_MATRIX_ENABLE - rgb_matrix_sethsv_noeeprom(HSV_RED); + rgb_matrix_set_color_all(rgb_matrix_get_val(), 0x00, 0x00); rgb_matrix_update_pwm_buffers(); #endif // RGB_MATRIX_ENABLE }