mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-07-12 02:41:37 +00:00
rgblight.c: add RGBLIGHT_LED_MAP support
This commit is contained in:
parent
db26d0fbd8
commit
c4a564fb7a
@ -51,6 +51,10 @@ static inline int is_static_effect(uint8_t mode) {
|
||||
#define MIN(a,b) (((a)<(b))?(a):(b))
|
||||
#define MAX(a,b) (((a)>(b))?(a):(b))
|
||||
|
||||
#ifdef RGBLIGHT_LED_MAP
|
||||
uint8_t led_map[] = RGBLIGHT_LED_MAP;
|
||||
#endif
|
||||
|
||||
#ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||
__attribute__ ((weak))
|
||||
const uint16_t RGBLED_GRADIENT_RANGES[] PROGMEM = {360, 240, 180, 120, 90};
|
||||
@ -662,10 +666,20 @@ void rgblight_sethsv_slave(uint16_t hue, uint8_t sat, uint8_t val) {
|
||||
#ifndef RGBLIGHT_CUSTOM_DRIVER
|
||||
void rgblight_set(void) {
|
||||
if (rgblight_config.enable) {
|
||||
#ifdef RGBW
|
||||
ws2812_setleds_rgbw(led, RGBLED_NUM);
|
||||
LED_TYPE *ledp;
|
||||
#ifdef RGBLIGHT_LED_MAP
|
||||
LED_TYPE led0[RGBLED_NUM];
|
||||
for(uint8_t i = 0; i < RGBLED_NUM; i++) {
|
||||
led0[i] = led[led_map[i]];
|
||||
}
|
||||
ledp = led0;
|
||||
#else
|
||||
ws2812_setleds(led, RGBLED_NUM);
|
||||
ledp = led;
|
||||
#endif
|
||||
#ifdef RGBW
|
||||
ws2812_setleds_rgbw(ledp, RGBLED_NUM);
|
||||
#else
|
||||
ws2812_setleds(ledp, RGBLED_NUM);
|
||||
#endif
|
||||
} else {
|
||||
for (uint8_t i = 0; i < RGBLED_NUM; i++) {
|
||||
|
Loading…
Reference in New Issue
Block a user