Replace example shows with numbered production shows and add sparkle flag

- Rename all show .txt files with NNN_ numeric prefix so order is explicit
  and controlled by filename (001_heartbeat_red through 006_party)
- Drop HOME_SHOW special-casing from convert_all.py; show 0 is simply the
  lowest-numbered file
- Add SHOW_FLAG_SPARKLE support: shows can declare '// flags: sparkle' to
  overlay random white flashes on top of the base color each frame
- Wire sparkle into led_controller and config.h (SPARKLE_CHANCE/FRAMES)
- Replace old placeholder/example shows with the six production shows

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-24 13:59:25 +02:00
parent a96f378c9c
commit ab2c1b34b4
30 changed files with 205 additions and 231 deletions
+4 -3
View File
@@ -6,7 +6,7 @@
* 1 tap — next show
* 2 taps — previous show
* 3 taps — lights off (any tap or hold resumes)
* hold — reset to show 0 (blue breath)
* hold — reset to show 0 (red heartbeat)
*
* To add or update shows:
* 1. Add or edit a .txt file in converter/shows/
@@ -79,7 +79,7 @@ void setup() {
s_button.setPressMs(800);
s_button.attachClick([]() { load_show((s_show_index + 1) % SHOW_COUNT); });
s_button.attachDoubleClick([]() { load_show((s_show_index + SHOW_COUNT - 1) % SHOW_COUNT); });
s_button.attachMultiClick([]() { if (s_button.getNumberClicks() == 3) { s_lights_off = true; leds_apply_color(CRGB::Black); leds_show(); } });
s_button.attachMultiClick([]() { if (s_button.getNumberClicks() == 3) { s_lights_off = true; leds_apply_color(CRGB::Black, false); leds_show(); } });
s_button.attachLongPressStart([]() { load_show(0); });
}
@@ -97,7 +97,8 @@ void loop() {
CRGB to = CRGB(step.r, step.g, step.b);
uint8_t t8 = step_progress(step, now);
leds_apply_color(blend(s_from_color, to, t8));
bool sparkle = (s_show.flags & SHOW_FLAG_SPARKLE) != 0;
leds_apply_color(blend(s_from_color, to, t8), sparkle);
leds_show();
if (t8 == 255) advance_step(to, now);