[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