~ruther/qmk_firmware

595f3cbe5bb06eab583352a047c89859a6fa0753 — Brad 7 years ago f1513c3
Added alternating led underglow pattern (#3498)

* added alternating led pattern

* added alternating with rgblight_config values

* removed my comments
2 files changed, 27 insertions(+), 2 deletions(-)

M quantum/rgblight.c
M quantum/rgblight.h
M quantum/rgblight.c => quantum/rgblight.c +25 -1
@@ 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 */

M quantum/rgblight.h => quantum/rgblight.h +2 -1
@@ 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