[Scummvm-cvs-logs] CVS: scummvm/scumm/imuse_digi dimuse_bndmgr.cpp,1.9,1.10 dimuse_codecs.cpp,1.2,1.3 dimuse_sndmgr.cpp,1.10,1.11 dimuse_sndmgr.h,1.6,1.7

Pawel Kolodziejski aquadran at users.sourceforge.net
Thu Jan 8 07:49:02 CET 2004


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

Modified Files:
	dimuse_bndmgr.cpp dimuse_codecs.cpp dimuse_sndmgr.cpp 
	dimuse_sndmgr.h 
Log Message:
fixed comi bundle codec output_size and related stuff. also propably strange hang/100% cpu usage

Index: dimuse_bndmgr.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_bndmgr.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- dimuse_bndmgr.cpp	8 Jan 2004 08:39:25 -0000	1.9
+++ dimuse_bndmgr.cpp	8 Jan 2004 15:48:41 -0000	1.10
@@ -229,7 +229,7 @@
 			curBuf = _blockChache;
 		}
 
-		if ((header_size != 0) && (skip > header_size))
+		if ((header_size != 0) && (skip >= header_size))
 			output_size -= skip;
 		if (output_size > size)
 			output_size = size;

Index: dimuse_codecs.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_codecs.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- dimuse_codecs.cpp	8 Jan 2004 12:14:48 -0000	1.2
+++ dimuse_codecs.cpp	8 Jan 2004 15:48:41 -0000	1.3
@@ -595,6 +595,7 @@
 					left = 0x1000 - firstWord / 2;
 					output_size = left * 2;
 				}
+				output_size += firstWord;
 			} else {
 				startPos = 1;
 				for (int i = 0; i < channels; i++) {

Index: dimuse_sndmgr.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_sndmgr.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- dimuse_sndmgr.cpp	8 Jan 2004 12:14:48 -0000	1.10
+++ dimuse_sndmgr.cpp	8 Jan 2004 15:48:41 -0000	1.11
@@ -89,7 +89,7 @@
 			case MKID_BE('REGN'):
 				size = READ_BE_UINT32(ptr); ptr += 4;
 				if (_sounds[slot].numRegions >= MAX_IMUSE_REGIONS) {
-					warning("ImuseDigiSndMgr::prepareSound(%s) Not enough space for Region", _sounds[slot].name);
+					warning("ImuseDigiSndMgr::prepareSound(%d/%s) Not enough space for Region", _sounds[slot].soundId, _sounds[slot].name);
 					ptr += 8;
 					break;
 				}
@@ -104,7 +104,7 @@
 			case MKID_BE('JUMP'):
 				size = READ_BE_UINT32(ptr); ptr += 4;
 				if (_sounds[slot].numJumps >= MAX_IMUSE_JUMPS) {
-					warning("ImuseDigiSndMgr::prepareSound(%s) Not enough space for Jump", _sounds[slot].name);
+					warning("ImuseDigiSndMgr::prepareSound(%d/%s) Not enough space for Jump", _sounds[slot].soundId, _sounds[slot].name);
 					ptr += size;
 					break;
 				}
@@ -121,7 +121,7 @@
 				size = READ_BE_UINT32(ptr); ptr += 4;
 				break;
 			default:
-				error("ImuseDigiSndMgr::prepareSound(%s) Unknown sfx header '%s'",  _sounds[slot].name, tag2str(tag));
+				error("ImuseDigiSndMgr::prepareSound(%d/%s) Unknown sfx header '%s'", _sounds[slot].soundId, _sounds[slot].name, tag2str(tag));
 			}
 		} while (tag != MKID_BE('DATA'));
 		_sounds[slot].offsetData =  ptr - s_ptr;
@@ -225,7 +225,8 @@
 			else 
 				error("ImuseDigiSndMgr::openSound() Don't know how load sound: %d", soundId);
 			_sounds[slot]._bundle->decompressSampleByIndex(soundId, 0, 0x2000, &ptr, 0);
-			strcpy(_sounds[slot].name, soundName);
+			_sounds[slot].name[0] = 0;
+			_sounds[slot].soundId = soundId;
 		} else {
 			error("ImuseDigiSndMgr::openSound() Don't know how load sound: %d", soundId);
 		}
@@ -235,14 +236,15 @@
 				result = openVoiceBundle(slot);
 			else if (soundGroup == IMUSE_MUSIC)
 				result = openMusicBundle(slot);
-			else 
+			else
 				error("ImuseDigiSndMgr::openSound() Don't know how load sound: %d", soundId);
 			_sounds[slot]._bundle->decompressSampleByName(soundName, 0, 0x2000, &ptr);
-			_sounds[slot].name[0] = 0;
+			strcpy(_sounds[slot].name, soundName);
+			_sounds[slot].soundId = soundId;
 		} else {
 			error("ImuseDigiSndMgr::openSound() Don't know how load sound: %s", soundName);
 		}
-	}	
+	}
 
 	if (result) {
 		if (ptr == NULL) {

Index: dimuse_sndmgr.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_sndmgr.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- dimuse_sndmgr.h	8 Jan 2004 08:39:25 -0000	1.6
+++ dimuse_sndmgr.h	8 Jan 2004 15:48:41 -0000	1.7
@@ -77,7 +77,8 @@
 		byte *allData;
 		int32 offsetData;
 		byte *resPtr;
-		char name[30];
+		char name[15];
+		int soundId;
 		bool freeResPtr;
 		BundleMgr *_bundle;
 		_region region[MAX_IMUSE_REGIONS];





More information about the Scummvm-git-logs mailing list