49 lines
936 B
Odin
49 lines
936 B
Odin
package engine
|
|
|
|
import "core:log"
|
|
|
|
import "ljud"
|
|
|
|
Bus :: struct {
|
|
backend: ^Bus_Backend,
|
|
}
|
|
|
|
create_bus :: proc(engine: ^Engine) -> (Bus, bool) {
|
|
assert(engine != nil)
|
|
|
|
bus: Bus
|
|
|
|
when AUDIO_ENGINE_LJUD {
|
|
backend, ok := ljud.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_LJUD {
|
|
ljud.destroy_bus(&engine.backend, bus.backend)
|
|
}
|
|
else {
|
|
#assert("TODO: SS - Implement for Audio Engine backend")
|
|
}
|
|
|
|
free(bus.backend)
|
|
bus.backend = nil
|
|
} |