v0.1.0 initial commit
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
// 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() {}
|
||||
Reference in New Issue
Block a user