diff options
author | Max Horn | 2009-10-14 23:28:23 +0000 |
---|---|---|
committer | Max Horn | 2009-10-14 23:28:23 +0000 |
commit | 3dc7c0a732ea5fa5ec3aa74406f242c211fd04b4 (patch) | |
tree | 109d30348faa30ff50d448959b599d8bccc03f3d /engines/sword2/sound.cpp | |
parent | 7f0f6655e87461d191c4fa9177779b13406dbb46 (diff) | |
download | scummvm-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/sword2/sound.cpp')
-rw-r--r-- | engines/sword2/sound.cpp | 20 |
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; } |