[Scummvm-cvs-logs] CVS: scummvm/scumm/imuse_digi dimuse_sndmgr.cpp,1.16,1.17 dimuse_sndmgr.h,1.10,1.11
Pawel Kolodziejski
aquadran at users.sourceforge.net
Fri Jan 9 12:21:01 CET 2004
Update of /cvsroot/scummvm/scummvm/scumm/imuse_digi
In directory sc8-pr-cvs1:/tmp/cvs-serv10608
Modified Files:
dimuse_sndmgr.cpp dimuse_sndmgr.h
Log Message:
added loading Sync datas
Index: dimuse_sndmgr.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_sndmgr.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- dimuse_sndmgr.cpp 9 Jan 2004 15:13:56 -0000 1.16
+++ dimuse_sndmgr.cpp 9 Jan 2004 20:20:01 -0000 1.17
@@ -116,7 +116,17 @@
_sounds[slot].numJumps++;
break;
case MKID_BE('SYNC'):
- size = READ_BE_UINT32(ptr); ptr += size + 4;
+ size = READ_BE_UINT32(ptr); ptr += 4;
+ if (_sounds[slot].numSyncs >= MAX_IMUSE_SYNCS) {
+ warning("ImuseDigiSndMgr::prepareSound(%d/%s) Not enough space for Sync", _sounds[slot].soundId, _sounds[slot].name);
+ ptr += size;
+ break;
+ }
+ _sounds[slot].sync[_sounds[slot].numSyncs].size = size;
+ _sounds[slot].sync[_sounds[slot].numSyncs].ptr = (byte *)malloc(size);
+ memcpy(_sounds[slot].sync[_sounds[slot].numSyncs].ptr, ptr, size);
+ _sounds[slot].numSyncs++;
+ ptr += size;
break;
case MKID_BE('DATA'):
size = READ_BE_UINT32(ptr); ptr += 4;
@@ -271,6 +281,8 @@
free(_sounds[l].resPtr);
if (_sounds[l]._bundle)
delete _sounds[l]._bundle;
+ for (int r = 0; r < _sounds[l].numSyncs; r++)
+ free(_sounds[l].sync[r].ptr);
memset(&_sounds[l], 0, sizeof(soundStruct));
}
}
Index: dimuse_sndmgr.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_sndmgr.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- dimuse_sndmgr.h 8 Jan 2004 20:37:26 -0000 1.10
+++ dimuse_sndmgr.h 9 Jan 2004 20:20:01 -0000 1.11
@@ -38,6 +38,7 @@
#define MAX_IMUSE_JUMPS 80
#define MAX_IMUSE_REGIONS 85
#define MAX_IMUSE_MARKERS 60
+#define MAX_IMUSE_SYNCS 4
#define IMUSE_RESOURCE 1
#define IMUSE_BUNDLE 2
@@ -61,6 +62,11 @@
struct _marker {
char name[256]; // name of marker
};
+
+ struct _sync {
+ int32 size; // size of sync
+ byte *ptr; // pointer to sync
+ };
public:
@@ -71,6 +77,7 @@
int numJumps; // number of Jumps
int numRegions; // number of Regions
int numMarkers; // number of Markers
+ int numSyncs; // number of Syncs
int32 offsetStop; // end offset in source data
bool endFlag;
bool inUse;
@@ -84,6 +91,7 @@
_region region[MAX_IMUSE_REGIONS];
_marker marker[MAX_IMUSE_MARKERS];
_jump jump[MAX_IMUSE_JUMPS];
+ _sync sync[MAX_IMUSE_SYNCS];
};
private:
More information about the Scummvm-git-logs
mailing list