aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorMax Horn2009-10-14 23:28:23 +0000
committerMax Horn2009-10-14 23:28:23 +0000
commit3dc7c0a732ea5fa5ec3aa74406f242c211fd04b4 (patch)
tree109d30348faa30ff50d448959b599d8bccc03f3d /engines
parent7f0f6655e87461d191c4fa9177779b13406dbb46 (diff)
downloadscummvm-rg350-3dc7c0a732ea5fa5ec3aa74406f242c211fd04b4.tar.gz
scummvm-rg350-3dc7c0a732ea5fa5ec3aa74406f242c211fd04b4.tar.bz2
scummvm-rg350-3dc7c0a732ea5fa5ec3aa74406f242c211fd04b4.zip
SWORD2: Switch from loadWAVFromStream to makeWAVStream.
This also fixes a memory leak (the MemoryReadStream wasn't being freed). svn-id: r45099
Diffstat (limited to 'engines')
-rw-r--r--engines/sword2/sound.cpp20
1 files changed, 6 insertions, 14 deletions
diff --git a/engines/sword2/sound.cpp b/engines/sword2/sound.cpp
index ed27622000..c5212d20c2 100644
--- a/engines/sword2/sound.cpp
+++ b/engines/sword2/sound.cpp
@@ -331,25 +331,17 @@ int32 Sound::playFx(Audio::SoundHandle *handle, byte *data, uint32 len, uint8 vo
return RDERR_FXALREADYOPEN;
Common::MemoryReadStream *stream = new Common::MemoryReadStream(data, len);
- int rate, size;
- byte flags;
+ Audio::AudioStream *input = 0;
if (Sword2Engine::isPsx()) {
- _vm->_mixer->playInputStream(soundType, handle, new Audio::VagStream(stream, loop), -1, vol, pan, true, false, isReverseStereo());
+ input = new Audio::VagStream(stream, loop);
} else {
- if (!Audio::loadWAVFromStream(*stream, size, rate, flags)) {
- warning("playFX: Not a valid WAV file");
- return RDERR_INVALIDWAV;
- }
-
- if (isReverseStereo())
- flags |= Audio::Mixer::FLAG_REVERSE_STEREO;
+ input = Audio::makeWAVStream(stream, true, loop);
+ }
- if (loop)
- flags |= Audio::Mixer::FLAG_LOOP;
+ assert(input);
- _vm->_mixer->playRaw(soundType, handle, data + stream->pos(), size, rate, flags, -1, vol, pan, 0, 0);
- }
+ _vm->_mixer->playInputStream(soundType, handle, input, -1, vol, pan, true, false, isReverseStereo());
return RD_OK;
}