aboutsummaryrefslogtreecommitdiff
path: root/engines/saga/sound.cpp
diff options
context:
space:
mode:
authorMax Horn2007-07-15 19:24:00 +0000
committerMax Horn2007-07-15 19:24:00 +0000
commitf4c0b853cc8453acac0c9e6f6901c0056a2288fa (patch)
treece3b9d4a1a040fa14a19d90da2bf6d87ad459c68 /engines/saga/sound.cpp
parent11b2806741da02dde2e2e4c1d5fa8ebb26d64233 (diff)
downloadscummvm-rg350-f4c0b853cc8453acac0c9e6f6901c0056a2288fa.tar.gz
scummvm-rg350-f4c0b853cc8453acac0c9e6f6901c0056a2288fa.tar.bz2
scummvm-rg350-f4c0b853cc8453acac0c9e6f6901c0056a2288fa.zip
Fixed sound factory messup caused by my previous commit
svn-id: r28111
Diffstat (limited to 'engines/saga/sound.cpp')
-rw-r--r--engines/saga/sound.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/engines/saga/sound.cpp b/engines/saga/sound.cpp
index 95b8c24a2f..621b3ed310 100644
--- a/engines/saga/sound.cpp
+++ b/engines/saga/sound.cpp
@@ -84,27 +84,34 @@ void Sound::playSoundBuffer(Audio::SoundHandle *handle, SoundBuffer &buffer, int
_mixer->playRaw(Audio::Mixer::kSFXSoundType, handle, buffer.buffer, buffer.size, buffer.frequency, flags, -1, volume);
} else {
Audio::AudioStream *stream = NULL;
+ Common::MemoryReadStream *tmp = NULL;
switch (buffer.soundType) {
#ifdef USE_MAD
case kSoundMP3:
debug(1, "Playing MP3 compressed sound");
buffer.soundFile->seek((long)buffer.fileOffset, SEEK_SET);
- stream = Audio::makeMP3Stream(buffer.soundFile, buffer.size);
+ tmp = buffer.soundFile->readStream(buffer.size);
+ assert(tmp);
+ stream = Audio::makeMP3Stream(tmp, true);
break;
#endif
#ifdef USE_VORBIS
case kSoundOGG:
debug(1, "Playing OGG compressed sound");
buffer.soundFile->seek((long)buffer.fileOffset, SEEK_SET);
- stream = Audio::makeVorbisStream(buffer.soundFile, buffer.size);
+ tmp = buffer.soundFile->readStream(buffer.size);
+ assert(tmp);
+ stream = Audio::makeVorbisStream(tmp, true);
break;
#endif
#ifdef USE_FLAC
case kSoundFLAC:
debug(1, "Playing FLAC compressed sound");
buffer.soundFile->seek((long)buffer.fileOffset, SEEK_SET);
- stream = Audio::makeFlacStream(buffer.soundFile, buffer.size);
+ tmp = buffer.soundFile->readStream(buffer.size);
+ assert(tmp);
+ stream = Audio::makeFlacStream(tmp, true);
break;
#endif
default: