Files
audio/engine/bus.odin

49 lines
961 B
Odin

package engine
import "core:log"
import "miniaudio"
Bus :: struct {
backend: ^Bus_Backend,
}
create_bus :: proc(engine: ^Engine) -> (Bus, bool) {
assert(engine != nil)
bus: Bus
when AUDIO_ENGINE_MINIAUDIO {
backend, ok := miniaudio.create_bus(&engine.backend)
if !ok {
return {}, false
}
bus.backend = backend
}
else {
#assert("TODO: SS - Implement for Audio Engine backend")
}
if bus.backend == nil {
return {}, false
}
return bus, true
}
destroy_bus :: proc(engine: ^Engine, bus: ^Bus) {
assert(engine != nil)
assert(bus != nil)
assert(bus.backend != nil)
when AUDIO_ENGINE_MINIAUDIO {
miniaudio.destroy_bus(&engine.backend, bus.backend)
}
else {
#assert("TODO: SS - Implement for Audio Engine backend")
}
free(bus.backend)
bus.backend = nil
}