void TwoColorWave::loop(struct rgb *leds){ struct rgb color; int last=-100; for(int i = 0; i < count; i++) { int led = i; if (change_direction) led = count - 1 - i; double v = sin(i*0.3+millis()/1000.0); double fade = v; if (fade < 0) fade = 0; leds[led].r = calc_fade(fade, constrain(wave_col.r*v, 0, 255), bg_col.r); leds[led].g = calc_fade(fade, constrain(wave_col.g*v, 0, 255), bg_col.g); leds[led].b = calc_fade(fade, constrain(wave_col.b*v, 0, 255), bg_col.b); } }
static float mix_b_fade_in_out(void *data, float t) { struct stinger_info *s = data; return 1.0f - calc_fade(1.0f - t, s->transition_b_mul); }