diff options
Diffstat (limited to 'quantum/rgblight.c')
| -rw-r--r-- | quantum/rgblight.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/quantum/rgblight.c b/quantum/rgblight.c index 119ca1b9e..3042ff11e 100644 --- a/quantum/rgblight.c +++ b/quantum/rgblight.c | |||
| @@ -51,6 +51,10 @@ static inline int is_static_effect(uint8_t mode) { | |||
| 51 | #define MIN(a,b) (((a)<(b))?(a):(b)) | 51 | #define MIN(a,b) (((a)<(b))?(a):(b)) |
| 52 | #define MAX(a,b) (((a)>(b))?(a):(b)) | 52 | #define MAX(a,b) (((a)>(b))?(a):(b)) |
| 53 | 53 | ||
| 54 | #ifdef RGBLIGHT_LED_MAP | ||
| 55 | const uint8_t led_map[] PROGMEM = RGBLIGHT_LED_MAP; | ||
| 56 | #endif | ||
| 57 | |||
| 54 | #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT | 58 | #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT |
| 55 | __attribute__ ((weak)) | 59 | __attribute__ ((weak)) |
| 56 | const uint16_t RGBLED_GRADIENT_RANGES[] PROGMEM = {360, 240, 180, 120, 90}; | 60 | const uint16_t RGBLED_GRADIENT_RANGES[] PROGMEM = {360, 240, 180, 120, 90}; |
| @@ -665,10 +669,20 @@ void rgblight_sethsv_slave(uint16_t hue, uint8_t sat, uint8_t val) { | |||
| 665 | #ifndef RGBLIGHT_CUSTOM_DRIVER | 669 | #ifndef RGBLIGHT_CUSTOM_DRIVER |
| 666 | void rgblight_set(void) { | 670 | void rgblight_set(void) { |
| 667 | if (rgblight_config.enable) { | 671 | if (rgblight_config.enable) { |
| 672 | LED_TYPE *ledp; | ||
| 673 | #ifdef RGBLIGHT_LED_MAP | ||
| 674 | LED_TYPE led0[RGBLED_NUM]; | ||
| 675 | for(uint8_t i = 0; i < RGBLED_NUM; i++) { | ||
| 676 | led0[i] = led[pgm_read_byte(&led_map[i])]; | ||
| 677 | } | ||
| 678 | ledp = led0; | ||
| 679 | #else | ||
| 680 | ledp = led; | ||
| 681 | #endif | ||
| 668 | #ifdef RGBW | 682 | #ifdef RGBW |
| 669 | ws2812_setleds_rgbw(led, RGBLED_NUM); | 683 | ws2812_setleds_rgbw(ledp, RGBLED_NUM); |
| 670 | #else | 684 | #else |
| 671 | ws2812_setleds(led, RGBLED_NUM); | 685 | ws2812_setleds(ledp, RGBLED_NUM); |
| 672 | #endif | 686 | #endif |
| 673 | } else { | 687 | } else { |
| 674 | for (uint8_t i = 0; i < RGBLED_NUM; i++) { | 688 | for (uint8_t i = 0; i < RGBLED_NUM; i++) { |
