summaryrefslogtreecommitdiff
path: root/quantum
diff options
context:
space:
mode:
authorJoshua Diamond <josh@windowoffire.com>2020-06-01 05:02:28 -0400
committerDrashna Jael're <drashna@live.com>2020-08-08 20:52:45 -0700
commit98e93c95ec1ce0a3f5af06cd725266b90cded34b (patch)
treefb5a335cd8b411fdefcf6a521d55ddf663829ba2 /quantum
parentb9f8ad1b9a5a7fcfe08e97976677401adae7db10 (diff)
Option to allow lighting layers when RGB Lighting is off (#9051)
Diffstat (limited to 'quantum')
-rw-r--r--quantum/rgblight.c25
1 files changed, 19 insertions, 6 deletions
diff --git a/quantum/rgblight.c b/quantum/rgblight.c
index bcfedc5e7d..8656549fd4 100644
--- a/quantum/rgblight.c
+++ b/quantum/rgblight.c
@@ -630,6 +630,13 @@ void rgblight_set_layer_state(uint8_t layer, bool enabled) {
if (rgblight_status.timer_enabled == false) {
rgblight_mode_noeeprom(rgblight_config.mode);
}
+
+# ifdef RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
+ // If not enabled, then nothing else will actually set the LEDs...
+ if (!rgblight_config.enable) {
+ rgblight_set();
+ }
+# endif
}
bool rgblight_get_layer_state(uint8_t layer) {
@@ -695,16 +702,11 @@ void rgblight_unblink_layers(void) {
__attribute__((weak)) void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) { ws2812_setleds(start_led, num_leds); }
#ifndef RGBLIGHT_CUSTOM_DRIVER
+
void rgblight_set(void) {
LED_TYPE *start_led;
uint8_t num_leds = rgblight_ranges.clipping_num_leds;
-# ifdef RGBLIGHT_LAYERS
- if (rgblight_layers != NULL) {
- rgblight_layers_write();
- }
-# endif
-
if (!rgblight_config.enable) {
for (uint8_t i = rgblight_ranges.effect_start_pos; i < rgblight_ranges.effect_end_pos; i++) {
led[i].r = 0;
@@ -715,6 +717,17 @@ void rgblight_set(void) {
# endif
}
}
+
+# ifdef RGBLIGHT_LAYERS
+ if (rgblight_layers != NULL
+# ifndef RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
+ && rgblight_config.enable
+# endif
+ ) {
+ rgblight_layers_write();
+ }
+# endif
+
# ifdef RGBLIGHT_LED_MAP
LED_TYPE led0[RGBLED_NUM];
for (uint8_t i = 0; i < RGBLED_NUM; i++) {