|
@@ -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;
|
|
|
};
|
|
|
|