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:
@@ -16,6 +16,9 @@
|
||||
#define SHOW_LOOP 0 // repeat the show indefinitely
|
||||
#define SHOW_SINGLE 1 // play once, then auto-advance to the next show
|
||||
|
||||
// Show flags (bitfield for ShowDef.flags).
|
||||
#define SHOW_FLAG_SPARKLE 0x01 // overlay random white sparkles on this show
|
||||
|
||||
// One step in a lightshow: a target color and the time to reach it.
|
||||
struct Step {
|
||||
uint8_t r, g, b; // Target RGB color (0–255 each)
|
||||
@@ -27,6 +30,7 @@ struct ShowDef {
|
||||
const Step* steps; // Pointer to a PROGMEM Step array
|
||||
uint16_t length; // Number of steps in the array
|
||||
uint8_t mode; // SHOW_LOOP or SHOW_SINGLE
|
||||
uint8_t flags; // Bitfield: see SHOW_FLAG_* above
|
||||
};
|
||||
|
||||
// Read one Step from PROGMEM into a regular struct.
|
||||
@@ -47,5 +51,6 @@ inline ShowDef read_show_def(const ShowDef* ptr) {
|
||||
sd.steps = (const Step*)pgm_read_word(&ptr->steps);
|
||||
sd.length = pgm_read_word(&ptr->length);
|
||||
sd.mode = pgm_read_byte(&ptr->mode);
|
||||
sd.flags = pgm_read_byte(&ptr->flags);
|
||||
return sd;
|
||||
}
|
||||
Reference in New Issue
Block a user