// Package audio provides fire-and-forget sound effect playback. // Placeholder backend: pre-synthesized WAVs spawned via pw-play (PipeWire). // Per-spawn stream connect costs ~tens of ms; replace with a persistent // stream (libpipewire CGO or raylib audio) once latency matters package audio // Effect identifies a synthesized sound effect type Effect uint8 const ( EffectNone Effect = iota EffectPickup EffectMagnet EffectShield EffectShieldBreak EffectBoost EffectDeflect EffectMoveRow EffectMoveLane EffectHitWall EffectLevelClear EffectCount ) // Engine plays effects without blocking the caller type Engine interface { Play(Effect) // EffectNone is a no-op Close() } // nullEngine is the silent fallback (unsupported platform, pw-play absent) type nullEngine struct{} func (nullEngine) Play(Effect) {} func (nullEngine) Close() {}