From 2f92e2a67ad3fcd98ccff4482fdb75cd6eb33be3 Mon Sep 17 00:00:00 2001 From: Anton Yabchinskiy Date: Sat, 22 Nov 2014 02:58:32 +0300 Subject: Open/close libao audio device --- drivers/ao/audio_driver_ao.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'drivers/ao/audio_driver_ao.cpp') diff --git a/drivers/ao/audio_driver_ao.cpp b/drivers/ao/audio_driver_ao.cpp index 29c90b5bd..d143b4aa6 100644 --- a/drivers/ao/audio_driver_ao.cpp +++ b/drivers/ao/audio_driver_ao.cpp @@ -43,6 +43,17 @@ Error AudioDriverAO::init() { output_format = OUTPUT_STEREO; channels = 2; + ao_sample_format format; + + format.bits = 16; + format.rate = mix_rate; + format.channels = channels; + format.byte_format = AO_FMT_LITTLE; + format.matrix = "L,R"; + + device = ao_open_live(ao_default_driver_id(), &format, 0); + ERR_FAIL_COND_V(device == 0, ERR_CANT_OPEN); + int latency = GLOBAL_DEF("audio/output_latency",25); buffer_size = nearest_power_of_2( latency * mix_rate / 1000 ); @@ -114,6 +125,10 @@ void AudioDriverAO::finish() { memdelete(thread); if (mutex) memdelete(mutex); + + if (device) + ao_close(device); + thread = NULL; }; -- cgit v1.2.3-70-g09d2