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 }