[Scummvm-cvs-logs] CVS: scummvm/scumm sound.cpp,1.63,1.64 sound.h,1.21,1.22

Pawel Kolodziejski aquadran at users.sourceforge.net
Sat Dec 28 13:47:05 CET 2002


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv9564

Modified Files:
	sound.cpp sound.h 
Log Message:
added more stuff for CMI music

Index: sound.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sound.cpp,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -d -r1.63 -r1.64
--- sound.cpp	28 Dec 2002 16:38:15 -0000	1.63
+++ sound.cpp	28 Dec 2002 21:46:49 -0000	1.64
@@ -1053,7 +1053,10 @@
 				tag = READ_BE_UINT32(ptr);  ptr += 4;
 				switch(tag) {
 				case MKID_BE('FRMT'):
-					size = READ_BE_UINT32(ptr); ptr += 24;
+					ptr += 12;
+					_bundleMusicSampleBits = READ_BE_UINT32(ptr); ptr += 4;
+					rate = READ_BE_UINT32(ptr); ptr += 4;
+					channels = READ_BE_UINT32(ptr); ptr += 4;
 				break;
 				case MKID_BE('TEXT'):
 				case MKID_BE('REGN'):
@@ -1099,7 +1102,16 @@
 	ptr = _musicBundleBufFinal;
 
 	byte * buffer = NULL;
-	uint32 final_size = decode12BitsSample(ptr, &buffer, size);
+	uint32 final_size;
+	if (_bundleMusicSampleBits == 12) {
+		final_size = decode12BitsSample(ptr, &buffer, size);
+	} else if (_bundleMusicSampleBits == 16) {
+		buffer = (byte*)malloc(size);
+		final_size = size;
+		memcpy(buffer, ptr, size);
+	} else {
+		warning("Sound::bundleMusicHandler  to do more playStream options...");
+	}
 
 	if (_bundleMusicTrack == -1) {
 		_bundleMusicTrack = _scumm->_mixer->playStream(NULL, _scumm->_mixer->_beginSlots - 1, buffer, final_size, rate,

Index: sound.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sound.h,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- sound.h	25 Dec 2002 14:46:39 -0000	1.21
+++ sound.h	28 Dec 2002 21:46:49 -0000	1.22
@@ -54,6 +54,7 @@
 	int32 _bundleMusicTrack;
 	bool _musicBundleToBeChanged;
 	bool _musicBundleToBeRemoved;
+	int32 _bundleMusicSampleBits;
 
 	File *_sfxFile;
 	uint32 _talk_sound_a1, _talk_sound_a2, _talk_sound_b1, _talk_sound_b2;





More information about the Scummvm-git-logs mailing list