Files
2026-07-15 01:28:56 -04:00

36 lines
862 B
Go

// 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() {}