[Scummvm-cvs-logs] CVS: scummvm/scumm/imuse_digi dimuse.cpp,1.118,1.119
Pawel Kolodziejski
aquadran at users.sourceforge.net
Fri Jan 28 03:53:02 CET 2005
Update of /cvsroot/scummvm/scummvm/scumm/imuse_digi
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20177
Modified Files:
dimuse.cpp
Log Message:
fixed restoration of sounds params after cross non/compressed bundles
Index: dimuse.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse.cpp,v
retrieving revision 1.118
retrieving revision 1.119
diff -u -d -r1.118 -r1.119
--- dimuse.cpp 28 Jan 2005 11:21:38 -0000 1.118
+++ dimuse.cpp 28 Jan 2005 11:51:57 -0000 1.119
@@ -149,15 +149,32 @@
assert(track->soundHandle);
if (track->compressed) {
track->regionOffset = 0;
- track->dataOffset = _sound->getRegionOffset(track->soundHandle, track->curRegion);
}
track->compressed = _sound->isCompressed(track->soundHandle);
if (track->compressed) {
track->regionOffset = 0;
- track->dataOffset = _sound->getRegionOffset(track->soundHandle, track->curRegion);
}
+ track->dataOffset = _sound->getRegionOffset(track->soundHandle, track->curRegion);
+ int bits = _sound->getBits(track->soundHandle);
+ int channels = _sound->getChannels(track->soundHandle);
+ int freq = _sound->getFreq(track->soundHandle);
+ track->iteration = freq * channels;
+ track->mixerFlags = 0;
+ if (channels == 2)
+ track->mixerFlags = SoundMixer::FLAG_STEREO | SoundMixer::FLAG_REVERSE_STEREO;
+
+ if ((bits == 12) || (bits == 16)) {
+ track->mixerFlags |= SoundMixer::FLAG_16BITS;
+ track->iteration *= 2;
+ } else if (bits == 8) {
+ track->mixerFlags |= SoundMixer::FLAG_UNSIGNED;
+ } else
+ error("IMuseDigital::saveOrLoad(): Can't handle %d bit samples", bits);
+
+ if (track->compressed)
+ track->mixerFlags |= SoundMixer::FLAG_LITTLE_ENDIAN;
+
int32 streamBufferSize = track->iteration;
- int freq = _sound->getFreq(track->soundHandle);
track->stream2 = NULL;
track->stream = makeAppendableAudioStream(freq, track->mixerFlags, streamBufferSize);
More information about the Scummvm-git-logs
mailing list