Add context initialisation to miniaudio backend

This is used for mutexes in the enhanced backend
This commit is contained in:
Clownacy 2020-04-24 17:06:53 +01:00
parent bf8d824b70
commit 8e2d8ab962

View file

@ -82,52 +82,63 @@ bool AudioBackend_Init(void)
ma_result return_value; ma_result return_value;
return_value = ma_device_init(NULL, &config, &device); return_value = ma_context_init(NULL, 0, NULL, &context);
if (return_value == MA_SUCCESS) if (return_value == MA_SUCCESS)
{ {
return_value = ma_mutex_init(device.pContext, &mutex); return_value = ma_device_init(&context, &config, &device);
if (return_value == MA_SUCCESS) if (return_value == MA_SUCCESS)
{ {
return_value = ma_mutex_init(device.pContext, &organya_mutex); return_value = ma_mutex_init(device.pContext, &mutex);
if (return_value == MA_SUCCESS) if (return_value == MA_SUCCESS)
{ {
return_value = ma_device_start(&device); return_value = ma_mutex_init(device.pContext, &organya_mutex);
if (return_value == MA_SUCCESS) if (return_value == MA_SUCCESS)
{ {
output_frequency = device.sampleRate; return_value = ma_device_start(&device);
Mixer_Init(device.sampleRate); if (return_value == MA_SUCCESS)
{
output_frequency = device.sampleRate;
return true; Mixer_Init(device.sampleRate);
return true;
}
else
{
Backend_PrintError("Failed to start playback device: %s", ma_result_description(return_value));
}
ma_mutex_uninit(&organya_mutex);
} }
else else
{ {
Backend_PrintError("Failed to start playback device: %s", ma_result_description(return_value)); Backend_PrintError("Failed to create organya mutex: %s", ma_result_description(return_value));
} }
ma_mutex_uninit(&organya_mutex); ma_mutex_uninit(&mutex);
} }
else else
{ {
Backend_PrintError("Failed to create organya mutex: %s", ma_result_description(return_value)); Backend_PrintError("Failed to create mutex: %s", ma_result_description(return_value));
} }
ma_mutex_uninit(&mutex); ma_device_uninit(&device);
} }
else else
{ {
Backend_PrintError("Failed to create mutex: %s", ma_result_description(return_value)); Backend_PrintError("Failed to initialize playback device: %s", ma_result_description(return_value));
} }
ma_device_uninit(&device); ma_context_uninit(&context);
} }
else else
{ {
Backend_PrintError("Failed to initialize playback device: %s", ma_result_description(return_value)); Backend_PrintError("Failed to initialize context: %s", ma_result_description(return_value));
} }
@ -146,6 +157,8 @@ void AudioBackend_Deinit(void)
ma_mutex_uninit(&mutex); ma_mutex_uninit(&mutex);
ma_device_uninit(&device); ma_device_uninit(&device);
ma_context_uninit(&context);
} }
AudioBackend_Sound* AudioBackend_CreateSound(unsigned int frequency, const unsigned char *samples, size_t length) AudioBackend_Sound* AudioBackend_CreateSound(unsigned int frequency, const unsigned char *samples, size_t length)