|
|
|
@ -474,22 +474,22 @@ void InitAudioDevice(void) |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
// Keep the device running the whole time. May want to consider doing something a bit smarter and only have the device running |
|
|
|
// while there's at least one sound being played. |
|
|
|
result = ma_device_start(&AUDIO.System.device); |
|
|
|
if (result != MA_SUCCESS) |
|
|
|
// Mixing happens on a separate thread which means we need to synchronize. I'm using a mutex here to make things simple, but may |
|
|
|
// want to look at something a bit smarter later on to keep everything real-time, if that's necessary. |
|
|
|
if (ma_mutex_init(&AUDIO.System.lock) != MA_SUCCESS) |
|
|
|
{ |
|
|
|
TRACELOG(LOG_WARNING, "AUDIO: Failed to start playback device"); |
|
|
|
TRACELOG(LOG_WARNING, "AUDIO: Failed to create mutex for mixing"); |
|
|
|
ma_device_uninit(&AUDIO.System.device); |
|
|
|
ma_context_uninit(&AUDIO.System.context); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
// Mixing happens on a separate thread which means we need to synchronize. I'm using a mutex here to make things simple, but may |
|
|
|
// want to look at something a bit smarter later on to keep everything real-time, if that's necessary. |
|
|
|
if (ma_mutex_init(&AUDIO.System.lock) != MA_SUCCESS) |
|
|
|
// Keep the device running the whole time. May want to consider doing something a bit smarter and only have the device running |
|
|
|
// while there's at least one sound being played. |
|
|
|
result = ma_device_start(&AUDIO.System.device); |
|
|
|
if (result != MA_SUCCESS) |
|
|
|
{ |
|
|
|
TRACELOG(LOG_WARNING, "AUDIO: Failed to create mutex for mixing"); |
|
|
|
TRACELOG(LOG_WARNING, "AUDIO: Failed to start playback device"); |
|
|
|
ma_device_uninit(&AUDIO.System.device); |
|
|
|
ma_context_uninit(&AUDIO.System.context); |
|
|
|
return; |
|
|
|
|