aboutsummaryrefslogtreecommitdiff
path: root/engines/tucker
diff options
context:
space:
mode:
authorMax Horn2009-10-14 22:37:05 +0000
committerMax Horn2009-10-14 22:37:05 +0000
commit6a2985ba08fc030d93d625615d7b1b5604fbc98c (patch)
treee25a72cfb73129ded78f0b72269778b7f98fe868 /engines/tucker
parenta7e6f50ede79a0f7f1ca89ae6900d838cf4fe334 (diff)
downloadscummvm-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.cpp25
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;
}