aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;
}