diff options
author | Max Horn | 2009-10-14 22:37:05 +0000 |
---|---|---|
committer | Max Horn | 2009-10-14 22:37:05 +0000 |
commit | 6a2985ba08fc030d93d625615d7b1b5604fbc98c (patch) | |
tree | e25a72cfb73129ded78f0b72269778b7f98fe868 /engines/tucker | |
parent | a7e6f50ede79a0f7f1ca89ae6900d838cf4fe334 (diff) | |
download | scummvm-rg350-6a2985ba08fc030d93d625615d7b1b5604fbc98c.tar.gz scummvm-rg350-6a2985ba08fc030d93d625615d7b1b5604fbc98c.tar.bz2 scummvm-rg350-6a2985ba08fc030d93d625615d7b1b5604fbc98c.zip |
Patch #2834677: Wave/ADPCM Endianness Fixes
svn-id: r45095
Diffstat (limited to 'engines/tucker')
-rw-r--r-- | engines/tucker/sequences.cpp | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/engines/tucker/sequences.cpp b/engines/tucker/sequences.cpp index e8280c3038..d115b1a8d1 100644 --- a/engines/tucker/sequences.cpp +++ b/engines/tucker/sequences.cpp @@ -601,27 +601,24 @@ Audio::AudioStream *AnimationSequencePlayer::loadSound(int index, AnimationSound case kAnimationSoundType16BitsRAW: size = f.size(); rate = 22050; - flags = Audio::Mixer::FLAG_UNSIGNED; - if (type == kAnimationSoundType16BitsRAW) { + flags = Audio::Mixer::FLAG_UNSIGNED|Audio::Mixer::FLAG_AUTOFREE; + if (type == kAnimationSoundType16BitsRAW) flags = Audio::Mixer::FLAG_LITTLE_ENDIAN | Audio::Mixer::FLAG_16BITS; + + if (size != 0) { + uint8 *sampleData = (uint8 *)malloc(size); + if (sampleData) { + f.read(sampleData, size); + stream = Audio::makeLinearInputStream(sampleData, size, rate, flags, 0, 0); + } } break; case kAnimationSoundTypeWAV: case kAnimationSoundTypeLoopingWAV: - Audio::loadWAVFromStream(f, size, rate, flags); - if (type == kAnimationSoundTypeLoopingWAV) { - flags |= Audio::Mixer::FLAG_LOOP; - } + stream = Audio::makeWAVStream(&f, true, type == kAnimationSoundTypeLoopingWAV); break; } - if (size != 0) { - uint8 *sampleData = (uint8 *)malloc(size); - if (sampleData) { - f.read(sampleData, size); - flags |= Audio::Mixer::FLAG_AUTOFREE; - stream = Audio::makeLinearInputStream(sampleData, size, rate, flags, 0, 0); - } - } + } return stream; } |