Change RGBLIGHT_LAYERS_RETAIN_VAL to scale the segment's value instead of replace it
This commit is contained in:
parent
8991c54536
commit
4e47566739
|
@ -785,10 +785,13 @@ static void rgblight_layers_write(void) {
|
|||
break; // No more segments
|
||||
}
|
||||
// Write segment.count LEDs
|
||||
# ifdef RGBLIGHT_LAYERS_RETAIN_VAL
|
||||
uint8_t scaled_segment_val = ((uint16_t)current_val * segment.val) >> 8;
|
||||
# endif
|
||||
rgb_led_t *const limit = &led[MIN(segment.index + segment.count, RGBLIGHT_LED_COUNT)];
|
||||
for (rgb_led_t *led_ptr = &led[segment.index]; led_ptr < limit; led_ptr++) {
|
||||
# ifdef RGBLIGHT_LAYERS_RETAIN_VAL
|
||||
sethsv(segment.hue, segment.sat, current_val, led_ptr);
|
||||
sethsv(segment.hue, segment.sat, scaled_segment_val, led_ptr);
|
||||
# else
|
||||
sethsv(segment.hue, segment.sat, segment.val, led_ptr);
|
||||
# endif
|
||||
|
|
Loading…
Reference in New Issue