summaryrefslogtreecommitdiffstats
path: root/quantum/rgblight.c
diff options
context:
space:
mode:
authorBrad <broswen@users.noreply.github.com>2018-07-29 17:42:11 +0200
committerDrashna Jaelre <drashna@live.com>2018-07-29 17:42:11 +0200
commit595f3cbe5bb06eab583352a047c89859a6fa0753 (patch)
tree7061681a1dde9f7c3326cd6e8c96d34d9716a46e /quantum/rgblight.c
parentf1513c3ad21822a376eb50fb8331e63617a0b2db (diff)
downloadqmk_firmware-595f3cbe5bb06eab583352a047c89859a6fa0753.tar.gz
qmk_firmware-595f3cbe5bb06eab583352a047c89859a6fa0753.tar.xz
Added alternating led underglow pattern (#3498)
* added alternating led pattern * added alternating with rgblight_config values * removed my comments
Diffstat (limited to 'quantum/rgblight.c')
-rw-r--r--quantum/rgblight.c26
1 files changed, 25 insertions, 1 deletions
diff --git a/quantum/rgblight.c b/quantum/rgblight.c
index aa70cbd9e..4919ae4ab 100644
--- a/quantum/rgblight.c
+++ b/quantum/rgblight.c
@@ -247,7 +247,7 @@ void rgblight_mode_eeprom_helper(uint8_t mode, bool write_to_eeprom) {
rgblight_timer_disable();
#endif
} else if ((rgblight_config.mode >= 2 && rgblight_config.mode <= 24) ||
- rgblight_config.mode == 35 ) {
+ rgblight_config.mode == 35 || rgblight_config.mode == 36) {
// MODE 2-5, breathing
// MODE 6-8, rainbow mood
// MODE 9-14, rainbow swirl
@@ -255,6 +255,7 @@ void rgblight_mode_eeprom_helper(uint8_t mode, bool write_to_eeprom) {
// MODE 21-23, knight
// MODE 24, xmas
// MODE 35 RGB test
+ // MODE 36, alterating
#ifdef RGBLIGHT_ANIMATIONS
rgblight_timer_enable();
@@ -591,6 +592,8 @@ void rgblight_task(void) {
} else if (rgblight_config.mode == 35) {
// mode = 35, RGB test
rgblight_effect_rgbtest();
+ } else if (rgblight_config.mode == 36){
+ rgblight_effect_alternating();
}
}
}
@@ -772,4 +775,25 @@ void rgblight_effect_rgbtest(void) {
pos = (pos + 1) % 3;
}
+void rgblight_effect_alternating(void){
+ static uint16_t last_timer = 0;
+ static uint16_t pos = 0;
+ if (timer_elapsed(last_timer) < 500) {
+ return;
+ }
+ last_timer = timer_read();
+
+ for(int i = 0; i<RGBLED_NUM; i++){
+ if(i<RGBLED_NUM/2 && pos){
+ rgblight_sethsv_at(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, i);
+ }else if (i>=RGBLED_NUM/2 && !pos){
+ rgblight_sethsv_at(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, i);
+ }else{
+ rgblight_sethsv_at(rgblight_config.hue, rgblight_config.sat, 0, i);
+ }
+ }
+ rgblight_set();
+ pos = (pos + 1) % 2;
+}
+
#endif /* RGBLIGHT_ANIMATIONS */