diff options
author | xyverz <xyverz@gmail.com> | 2017-01-08 21:47:08 -0800 |
---|---|---|
committer | xyverz <xyverz@gmail.com> | 2017-01-08 21:47:08 -0800 |
commit | 99521a448296902d15c597f4d2e170766c4afadb (patch) | |
tree | 8daa16747393c2cef6b897fbb88e74ef427df76e /quantum/rgblight.c | |
parent | 79343f1c6cde28c454eac0a577d0d7dbf3aa2f17 (diff) | |
parent | 176b93d08eb5cc0c65a6d571fc2c1fec5f575854 (diff) |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'quantum/rgblight.c')
-rw-r--r-- | quantum/rgblight.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/quantum/rgblight.c b/quantum/rgblight.c index 625971e0fe..52a09817a1 100644 --- a/quantum/rgblight.c +++ b/quantum/rgblight.c @@ -370,6 +370,7 @@ void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b) { rgblight_set(); } +__attribute__ ((weak)) void rgblight_set(void) { if (rgblight_config.enable) { #ifdef RGBW @@ -449,6 +450,9 @@ void rgblight_task(void) { } else if (rgblight_config.mode >= 21 && rgblight_config.mode <= 23) { // mode = 21 to 23, knight mode rgblight_effect_knight(rgblight_config.mode - 21); + } else { + // mode = 24, christmas mode + rgblight_effect_christmas(); } } } @@ -594,4 +598,22 @@ void rgblight_effect_knight(uint8_t interval) { } } + +void rgblight_effect_christmas(void) { + static uint16_t current_offset = 0; + static uint16_t last_timer = 0; + uint16_t hue; + uint8_t i; + if (timer_elapsed(last_timer) < 1000) { + return; + } + last_timer = timer_read(); + current_offset = (current_offset + 1) % 2; + for (i = 0; i < RGBLED_NUM; i++) { + hue = 0 + ((RGBLED_NUM * (i + current_offset)) % 2) * 80; + sethsv(hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[i]); + } + rgblight_set(); +} + #endif |