aboutsummaryrefslogtreecommitdiffstats
path: root/src/audio.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/audio.c')
-rw-r--r--src/audio.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/audio.c b/src/audio.c
index cf2b54c20..728f93718 100644
--- a/src/audio.c
+++ b/src/audio.c
@@ -223,7 +223,10 @@ inline void syncAudioDevicesEnabledArrays() {
if(myAudioDevicesEnabled[i]) {
openAudioOutput(audioOutputArray[i], &audio_format);
}
- else closeAudioOutput(audioOutputArray[i]);
+ else {
+ dropBufferedAudioOutput(audioOutputArray[i]);
+ closeAudioOutput(audioOutputArray[i]);
+ }
}
}
@@ -312,6 +315,23 @@ int isAudioDeviceOpen() {
return audioOpened;
}
+void dropBufferedAudio() {
+ int i;
+
+ if(0 != memcmp(pdAudioDevicesEnabled, myAudioDevicesEnabled,
+ AUDIO_MAX_DEVICES))
+ {
+ syncAudioDevicesEnabledArrays();
+ }
+
+ audioBufferPos = 0;
+
+ for(i = 0; i < audioOutputArraySize; i++) {
+ if(!myAudioDevicesEnabled[i]) continue;
+ dropBufferedAudioOutput(audioOutputArray[i]);
+ }
+}
+
void closeAudioDevice() {
int i;