diff options
Diffstat (limited to 'src/audioOutput.c')
-rw-r--r-- | src/audioOutput.c | 5 |
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); } |