mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-07-12 10:51:33 +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 MIN(a,b) (((a)<(b))?(a):(b))
|
||||||
#define MAX(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
|
#ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||||
__attribute__ ((weak))
|
__attribute__ ((weak))
|
||||||
const uint16_t RGBLED_GRADIENT_RANGES[] PROGMEM = {360, 240, 180, 120, 90};
|
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
|
#ifndef RGBLIGHT_CUSTOM_DRIVER
|
||||||
void rgblight_set(void) {
|
void rgblight_set(void) {
|
||||||
if (rgblight_config.enable) {
|
if (rgblight_config.enable) {
|
||||||
#ifdef RGBW
|
LED_TYPE *ledp;
|
||||||
ws2812_setleds_rgbw(led, RGBLED_NUM);
|
#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
|
#else
|
||||||
ws2812_setleds(led, RGBLED_NUM);
|
ledp = led;
|
||||||
|
#endif
|
||||||
|
#ifdef RGBW
|
||||||
|
ws2812_setleds_rgbw(ledp, RGBLED_NUM);
|
||||||
|
#else
|
||||||
|
ws2812_setleds(ledp, RGBLED_NUM);
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
for (uint8_t i = 0; i < RGBLED_NUM; i++) {
|
for (uint8_t i = 0; i < RGBLED_NUM; i++) {
|
||||||
|
Loading…
Reference in New Issue
Block a user