aboutsummaryrefslogtreecommitdiff
path: root/backends/mixer/sdl/sdl-mixer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'backends/mixer/sdl/sdl-mixer.cpp')
-rw-r--r--backends/mixer/sdl/sdl-mixer.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/backends/mixer/sdl/sdl-mixer.cpp b/backends/mixer/sdl/sdl-mixer.cpp
index aa87fcb345..2317a03335 100644
--- a/backends/mixer/sdl/sdl-mixer.cpp
+++ b/backends/mixer/sdl/sdl-mixer.cpp
@@ -35,7 +35,8 @@
SdlMixerManager::SdlMixerManager()
:
- _mixer(0) {
+ _mixer(0),
+ _audioSuspended(false) {
}
@@ -120,4 +121,20 @@ void SdlMixerManager::sdlCallback(void *this_, byte *samples, int len) {
manager->callbackHandler(samples, len);
}
+void SdlMixerManager::suspendAudio() {
+ SDL_CloseAudio();
+ _audioSuspended = true;
+}
+
+int SdlMixerManager::resumeAudio() {
+ if (!_audioSuspended)
+ return -2;
+ if (SDL_OpenAudio(&_obtainedRate, NULL) < 0){
+ return -1;
+ }
+ SDL_PauseAudio(0);
+ _audioSuspended = false;
+ return 0;
+}
+
#endif