3x5_3 fix RGB Matrix indicators

Convert values from HSV to respect brightness settings
This commit is contained in:
casuanoob 2023-10-03 03:43:22 +11:00
parent 845b1da03f
commit cb9ac02f6a
2 changed files with 21 additions and 15 deletions

View File

@ -51,6 +51,6 @@
# define RGB_MATRIX_FRAMEBUFFER_EFFECTS # define RGB_MATRIX_FRAMEBUFFER_EFFECTS
// Startup values. // Startup values.
# define RGB_MATRIX_DEFAULT_VAL 64 # define RGB_MATRIX_DEFAULT_VAL 128
# define RGB_MATRIX_DEFAULT_SPD 32 # define RGB_MATRIX_DEFAULT_SPD 32
#endif #endif

View File

@ -16,6 +16,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include "color.h"
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
enum dilemma_keymap_layers { 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) { bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
if (host_keyboard_led_state().caps_lock) { if (host_keyboard_led_state().caps_lock) {
for (int i = led_min; i <= led_max; i++) { for (int i = led_min; i <= led_max; i++) {
if (g_led_config.flags[i] & LED_FLAG_MODIFIER) { if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) {
rgb_matrix_set_color(i, RGB_RED); rgb_matrix_set_color(i, rgb_matrix_get_val() + 76, 0x00, 0x00);
} }
} }
} }
uint8_t layer = get_highest_layer(layer_state); uint8_t layer = get_highest_layer(layer_state);
if (layer > 0) { if (layer > 0) {
RGB rgb; HSV hsv = rgb_matrix_get_hsv();
switch (get_highest_layer(layer_state)) { switch (get_highest_layer(layer_state)) {
case 1: case 1:
rgb = (RGB){RGB_BLUE}; hsv = (HSV){HSV_BLUE};
break; break;
case 2: case 2:
rgb = (RGB){RGB_CORAL}; hsv = (HSV){HSV_AZURE};
break; break;
case 3: case 3:
rgb = (RGB){RGB_GREEN}; hsv = (HSV){HSV_ORANGE};
break; break;
case 4: case 4:
rgb = (RGB){RGB_YELLOW}; hsv = (HSV){HSV_SPRINGGREEN};
break; break;
case 5: case 5:
rgb = (RGB){RGB_PINK}; hsv = (HSV){HSV_TEAL};
break; break;
case 6: case 6:
rgb = (RGB){RGB_MAGENTA}; hsv = (HSV){HSV_PURPLE};
break; break;
case 7: case 7:
default: default:
rgb = (RGB){RGB_RED}; hsv = (HSV){HSV_RED};
break; break;
}; };
for (int i = led_min; i <= led_max; i++) { if (hsv.v > rgb_matrix_get_val()) {
if ( g_led_config.flags[i] & LED_FLAG_UNDERGLOW) { 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); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
} }
}; }
} }
return false; return false;
}; };
@ -262,7 +268,7 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
void shutdown_user(void) { void shutdown_user(void) {
#ifdef RGB_MATRIX_ENABLE #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(); rgb_matrix_update_pwm_buffers();
#endif // RGB_MATRIX_ENABLE #endif // RGB_MATRIX_ENABLE
} }