aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/sound.cpp
diff options
context:
space:
mode:
authorDavid Corrales2007-08-05 19:34:20 +0000
committerDavid Corrales2007-08-05 19:34:20 +0000
commit6856535010bd2fa4449bcfde1c88dc06cd46e26f (patch)
treeb81a2234c2beff0312c93e039d6cafda4babeca6 /engines/scumm/sound.cpp
parent1400d28bfb37fc94f3c44dec0a4d0cef65fb8fb7 (diff)
parentec1803f838d5efc7decf75c05a1fb4a9633751e5 (diff)
downloadscummvm-rg350-6856535010bd2fa4449bcfde1c88dc06cd46e26f.tar.gz
scummvm-rg350-6856535010bd2fa4449bcfde1c88dc06cd46e26f.tar.bz2
scummvm-rg350-6856535010bd2fa4449bcfde1c88dc06cd46e26f.zip
Merged fsnode with trunk: r27971:28460
svn-id: r28462
Diffstat (limited to 'engines/scumm/sound.cpp')
-rw-r--r--engines/scumm/sound.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/engines/scumm/sound.cpp b/engines/scumm/sound.cpp
index e5720a013f..62f65c22c1 100644
--- a/engines/scumm/sound.cpp
+++ b/engines/scumm/sound.cpp
@@ -607,24 +607,31 @@ void Sound::startTalkSound(uint32 offset, uint32 b, int mode, Audio::SoundHandle
if (!_soundsPaused && _mixer->isReady()) {
Audio::AudioStream *input = NULL;
+ Common::MemoryReadStream *tmp = NULL;
switch (_soundMode) {
case kMP3Mode:
#ifdef USE_MAD
assert(size > 0);
- input = Audio::makeMP3Stream(_sfxFile, size);
+ tmp = _sfxFile->readStream(size);
+ assert(tmp);
+ input = Audio::makeMP3Stream(tmp, true);
#endif
break;
case kVorbisMode:
#ifdef USE_VORBIS
assert(size > 0);
- input = Audio::makeVorbisStream(_sfxFile, size);
+ tmp = _sfxFile->readStream(size);
+ assert(tmp);
+ input = Audio::makeVorbisStream(tmp, true);
#endif
break;
case kFlacMode:
#ifdef USE_FLAC
assert(size > 0);
- input = Audio::makeFlacStream(_sfxFile, size);
+ tmp = _sfxFile->readStream(size);
+ assert(tmp);
+ input = Audio::makeFlacStream(tmp, true);
#endif
break;
default:
@@ -831,7 +838,7 @@ void Sound::soundKludge(int *list, int num) {
}
void Sound::talkSound(uint32 a, uint32 b, int mode, int channel) {
- if (_vm->_game.version >= 6 && ConfMan.getBool("speech_mute"))
+ if (_vm->_game.version >= 5 && ConfMan.getBool("speech_mute"))
return;
if (mode == 1) {