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
+12 -5
View File
@@ -10,14 +10,21 @@ void leds_begin() {
FastLED.clear(true); // clear + show: strip starts fully off
}
void leds_apply_color(CRGB color) {
void leds_apply_color(CRGB color, bool sparkle) {
#if ACTIVE_PATTERN == PATTERN_SOLID
// All LEDs show the same color.
fill_solid(leds, NUM_LEDS, color);
// To add a new pattern, add a new #define in config.h and a new branch here.
// The pattern receives 'leds', 'NUM_LEDS', and the blended 'color' for this frame.
#endif
if (!sparkle) return;
static uint8_t sparkle_timer[NUM_LEDS];
if (random8() < SPARKLE_CHANCE) {
sparkle_timer[random8(NUM_LEDS)] = SPARKLE_FRAMES;
}
for (uint8_t i = 0; i < NUM_LEDS; i++) {
if (sparkle_timer[i] > 0) {
leds[i] = CRGB::White;
sparkle_timer[i]--;
}
}
}
void leds_show() {