aboutsummaryrefslogtreecommitdiff
path: root/quantum/rgblight.c
diff options
context:
space:
mode:
authorTakeshi ISHII <2170248+mtei@users.noreply.github.com>2019-03-21 08:55:24 +0900
committerMechMerlin <30334081+mechmerlin@users.noreply.github.com>2019-03-20 16:55:24 -0700
commitf7fd7f67bd1286a42326a6832627ef328252db0c (patch)
treeaf2be4e14b19d10ec58989fb3d46057009c79429 /quantum/rgblight.c
parentd5fd8c4f1cf79de17528f7f40948640fa8bb8d7a (diff)
downloadqmk_firmware-f7fd7f67bd1286a42326a6832627ef328252db0c.tar.gz
qmk_firmware-f7fd7f67bd1286a42326a6832627ef328252db0c.zip
rgblight.c: add remap feature (#5243)
* rgblight.c: add RGBLIGHT_LED_MAP support * add code to keyboards/helix/rev2/keymaps/five_rows/config.h to test rgblight.c:RGBLIGHT_LED_MAP * Test end. Revert "add code to keyboards/helix/rev2/keymaps/five_rows/config.h to test rgblight.c:RGBLIGHT_LED_MAP" This reverts commit e7488d6f7338460b533d7d19a09deccb011000bf. * update docs/feature_rgblight.md * led_map[] move to PROGMEM
Diffstat (limited to 'quantum/rgblight.c')
-rw-r--r--quantum/rgblight.c18
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
55const 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))
56const uint16_t RGBLED_GRADIENT_RANGES[] PROGMEM = {360, 240, 180, 120, 90}; 60const 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
666void rgblight_set(void) { 670void 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++) {