package ljud import "core:log" import "core:strings" import ma "vendor:miniaudio" Bus :: ma.sound_group create_bus :: proc(engine: ^Engine) -> (^Bus, bool) { assert(engine != nil) b := new(Bus) assert(b != nil) result := ma.sound_group_init( pEngine = &engine.ma_engine, flags = {}, pParentGroup = nil, // TODO: SS - Support parent busses. pGroup = b, ) if result != .SUCCESS { free(b) return nil, false } ma.sound_group_set_spatialization_enabled(b, true) // TODO: SS - Needs to be configurable outside. ma.sound_group_set_min_distance(b, 1.0) // TODO: SS - Needs to be configurable outside. ma.sound_group_set_max_distance(b, 50) // TODO: SS - Needs to be configurable outside. return b, true } destroy_bus :: proc(engine: ^Engine, bus: ^Bus) { assert(engine != nil) assert(bus != nil) ma.sound_group_uninit(bus) }