Defensive coding around case where backend soundsystem is unavailable

This commit is contained in:
Aaron Culliney
2015-07-04 18:13:01 -07:00
parent 2910b6180e
commit c036c8dc84

View File

@@ -25,6 +25,11 @@ AudioBackend_s *audio_backend = NULL;
//-----------------------------------------------------------------------------
long audio_createSoundBuffer(INOUT AudioBuffer_s **audioBuffer, unsigned long numChannels) {
*audioBuffer = NULL;
if (!audio_isAvailable) {
return -1;
}
AudioSettings_s *settings = &audio_backend->systemSettings;
@@ -59,6 +64,12 @@ bool audio_init(void) {
return true;
}
do {
if (!audio_backend) {
LOG("No backend audio available, cannot initialize soundcore");
break;
}
if (audioContext) {
audio_backend->shutdown(&audioContext);
}
@@ -66,11 +77,13 @@ bool audio_init(void) {
long err = audio_backend->setup((AudioContext_s**)&audioContext);
if (err) {
LOG("Failed to create an audio context!");
} else {
audio_isAvailable = true;
break;
}
return err;
audio_isAvailable = true;
} while (0);
return audio_isAvailable;
}
void audio_shutdown(void) {
@@ -82,10 +95,16 @@ void audio_shutdown(void) {
}
void audio_pause(void) {
if (!audio_isAvailable) {
return;
}
audio_backend->pause();
}
void audio_resume(void) {
if (!audio_isAvailable) {
return;
}
audio_backend->resume();
}