aboutsummaryrefslogtreecommitdiffstats
path: root/src/audioOutput.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/audioOutput.c')
-rw-r--r--src/audioOutput.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/audioOutput.c b/src/audioOutput.c
index 1165f247e..5352be012 100644
--- a/src/audioOutput.c
+++ b/src/audioOutput.c
@@ -41,18 +41,21 @@ AudioOutput * newAudioOutput(char * name) {
}
int openAudioOutput(AudioOutput * audioOutput, AudioFormat * audioFormat) {
+ if(audioOutput->open) closeAudioOutput(audioOutput);
return audioOutput->openDeviceFunc(audioOutput, audioFormat);
}
int playAudioOutput(AudioOutput * audioOutput, char * playChunk, int size) {
+ if(!audioOutput->open) return -1;
return audioOutput->playFunc(audioOutput, playChunk, size);
}
void closeAudioOutput(AudioOutput * audioOutput) {
- audioOutput->closeDeviceFunc(audioOutput);
+ if(audioOutput->open) audioOutput->closeDeviceFunc(audioOutput);
}
void finishAudioOutput(AudioOutput * audioOutput) {
+ closeAudioOutput(audioOutput);
audioOutput->finishDriverFunc(audioOutput);
free(audioOutput);
}