aboutsummaryrefslogtreecommitdiff
path: root/backends/mixer
diff options
context:
space:
mode:
authorAlejandro Marzini2010-06-29 01:08:36 +0000
committerAlejandro Marzini2010-06-29 01:08:36 +0000
commitfd77e4b09c8ca80c8e449ad7266afaa494f98500 (patch)
tree232ce052cfecd5f4d32d15dabc6fc2d2e46e7a43 /backends/mixer
parent494755cc36d4bd6bac46c63b6624fe5a294c493a (diff)
downloadscummvm-rg350-fd77e4b09c8ca80c8e449ad7266afaa494f98500.tar.gz
scummvm-rg350-fd77e4b09c8ca80c8e449ad7266afaa494f98500.tar.bz2
scummvm-rg350-fd77e4b09c8ca80c8e449ad7266afaa494f98500.zip
Modularized Linuxmoto port.
svn-id: r50474
Diffstat (limited to 'backends/mixer')
-rw-r--r--backends/mixer/sdl/sdl-mixer.cpp19
-rw-r--r--backends/mixer/sdl/sdl-mixer.h5
2 files changed, 23 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
diff --git a/backends/mixer/sdl/sdl-mixer.h b/backends/mixer/sdl/sdl-mixer.h
index e4e8263f38..f58260fef2 100644
--- a/backends/mixer/sdl/sdl-mixer.h
+++ b/backends/mixer/sdl/sdl-mixer.h
@@ -43,9 +43,14 @@ public:
Audio::Mixer *getMixer() { return (Audio::Mixer *)_mixer; }
+ // Used by LinuxMoto Port
+ virtual void suspendAudio();
+ virtual int resumeAudio();
+
protected:
Audio::MixerImpl *_mixer;
SDL_AudioSpec _obtainedRate;
+ bool _audioSuspended;
virtual SDL_AudioSpec getAudioSpec();
virtual void startAudio();