summary refs log tree commit diff
diff options
context:
space:
mode:
authorBrad <broswen@users.noreply.github.com>2018-07-29 10:42:11 -0500
committerDrashna Jaelre <drashna@live.com>2018-07-29 08:42:11 -0700
commit595f3cbe5bb06eab583352a047c89859a6fa0753 (patch)
tree7061681a1dde9f7c3326cd6e8c96d34d9716a46e
parentf1513c3ad21822a376eb50fb8331e63617a0b2db (diff)
Added alternating led underglow pattern (#3498)
* added alternating led pattern

* added alternating with rgblight_config values

* removed my comments
-rw-r--r--quantum/rgblight.c26
-rw-r--r--quantum/rgblight.h3
2 files changed, 27 insertions, 2 deletions
diff --git a/quantum/rgblight.c b/quantum/rgblight.c
index aa70cbd9ec..4919ae4abf 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 */
diff --git a/quantum/rgblight.h b/quantum/rgblight.h
index 0f7b5ffb56..ba010dfae3 100644
--- a/quantum/rgblight.h
+++ b/quantum/rgblight.h
@@ -17,7 +17,7 @@
 #define RGBLIGHT_H
 
 #ifdef RGBLIGHT_ANIMATIONS
-	#define RGBLIGHT_MODES 35
+	#define RGBLIGHT_MODES 36
 #else
 	#define RGBLIGHT_MODES 1
 #endif
@@ -166,5 +166,6 @@ void rgblight_effect_snake(uint8_t interval);
 void rgblight_effect_knight(uint8_t interval);
 void rgblight_effect_christmas(void);
 void rgblight_effect_rgbtest(void);
+void rgblight_effect_alternating(void);
 
 #endif