[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