|
@@ -628,6 +628,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) {
|
|
@@ -693,16 +700,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;
|
|
@@ -714,6 +716,16 @@ void rgblight_set(void) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+# 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++) {
|