Files
ducky/assets/soundbank.go

75 lines
1.6 KiB
Go
Raw Permalink Normal View History

2024-12-08 12:24:33 -05:00
package assets
import (
"bytes"
"log"
_ "embed"
"github.com/hajimehoshi/ebiten/v2/audio/mp3"
"github.com/hajimehoshi/ebiten/v2/audio/vorbis"
"github.com/hajimehoshi/ebiten/v2/audio/wav"
)
type SndAssetName string
const (
MainLoop SndAssetName = "MainLoop"
MainLoopMp3 SndAssetName = "MainLoopMp3"
MainLoopOgg SndAssetName = "MainLoopOgg"
SampleRate = 44100
)
var (
//SoundBank map[SndAssetName]*wav.Stream
//SoundBankMp3 map[SndAssetName]*mp3.Stream
SoundBankOgg map[SndAssetName]*vorbis.Stream
//go:embed mainloop.ogg
mainloop_snd []byte
)
func init() {
LoadSounds()
}
func LoadSounds() {
//SoundBank = make(map[SndAssetName]*wav.Stream)
//SoundBankMp3 = make(map[SndAssetName]*mp3.Stream)
SoundBankOgg = make(map[SndAssetName]*vorbis.Stream)
//SoundBank[MainLoop] = LoadSoundFatal(SampleRate, hyper_snd)
//SoundBankMp3[MainLoopMp3] = LoadSoundFatalMp3(SampleRate, mainloop_snd)
SoundBankOgg[MainLoopOgg] = LoadSoundFatalOgg(SampleRate, mainloop_snd)
}
func LoadSoundFatal(rate int, obj []byte) *wav.Stream {
stream, err := wav.DecodeWithSampleRate(rate, bytes.NewReader(obj))
if err != nil {
log.Fatal("dead, jim")
}
return stream
}
func LoadSoundFatalMp3(rate int, obj []byte) *mp3.Stream {
stream, err := mp3.DecodeWithSampleRate(rate, bytes.NewReader(obj))
if err != nil {
log.Fatal("dead, jim")
}
return stream
}
func LoadSoundFatalOgg(rate int, obj []byte) *vorbis.Stream {
stream, err := vorbis.DecodeWithSampleRate(rate, bytes.NewReader(obj))
if err != nil {
log.Fatal("dead, jim")
}
return stream
}