]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
optimize rgblight_effect_alternating(void)
authormtei <2170248+mtei@users.noreply.github.com>
Thu, 18 Oct 2018 16:30:48 +0000 (01:30 +0900)
committerDrashna Jaelre <drashna@live.com>
Thu, 18 Oct 2018 20:52:41 +0000 (13:52 -0700)
rgblight_effect_alternating (void) calls rgblight_sethsv_at () RGBLED_NUM times. As a result, rgblight_set () is called RGBLED_NUM + 1 times. This is wasteful processing.

quantum/rgblight.c

index 03f77cc80d1f276f70a53a05a679c8462526be4b..94e9c0a3b2010394eed9d6c00acb4f8548449811 100644 (file)
@@ -860,13 +860,13 @@ void rgblight_effect_alternating(void){
   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);
-                 }
+      if(i<RGBLED_NUM/2 && pos){
+          sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[i]);
+      }else if (i>=RGBLED_NUM/2 && !pos){
+          sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[i]);
+      }else{
+          sethsv(rgblight_config.hue, rgblight_config.sat, 0, (LED_TYPE *)&led[i]);
+      }
   }
   rgblight_set();
   pos = (pos + 1) % 2;