[Scummvm-cvs-logs] CVS: scummvm/scumm/imuse_digi dimuse.cpp,1.29,1.30 dimuse.h,1.18,1.19 dimuse_sndmgr.cpp,1.21,1.22 dimuse_sndmgr.h,1.15,1.16
Pawel Kolodziejski
aquadran at users.sourceforge.net
Wed Jan 14 22:38:01 CET 2004
Update of /cvsroot/scummvm/scummvm/scumm/imuse_digi
In directory sc8-pr-cvs1:/tmp/cvs-serv8247
Modified Files:
dimuse.cpp dimuse.h dimuse_sndmgr.cpp dimuse_sndmgr.h
Log Message:
position should be based on data offset
Index: dimuse.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse.cpp,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -d -r1.29 -r1.30
--- dimuse.cpp 14 Jan 2004 22:07:24 -0000 1.29
+++ dimuse.cpp 15 Jan 2004 06:36:59 -0000 1.30
@@ -230,6 +230,7 @@
}
debug(5, "switchToNextRegion-sound(%d) select %d region, curHookId: %d", _track[track].soundId, _track[track].curRegion, _track[track].curHookId);
+ _track[track].dataOffset += _track[track].regionOffset;
_track[track].regionOffset = 0;
}
@@ -250,6 +251,7 @@
_track[l].soundGroup = soundGroup;
_track[l].curHookId = hookId;
_track[l].curRegion = -1;
+ _track[l].dataOffset = 0;
_track[l].regionOffset = 0;
_track[l].trackOffset = 0;
_track[l].mod = 0;
@@ -622,7 +624,7 @@
for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
_track[l].locked = true;
if ((_track[l].soundId == soundId) && _track[l].used) {
- int32 pos = 1000 * _track[l].trackOffset / _track[l].iteration;
+ int32 pos = 1000 * (_track[l].dataOffset + _track[l].regionOffset) / _track[l].iteration;
_track[l].locked = false;
return pos;
}
Index: dimuse.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse.h,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -d -r1.18 -r1.19
--- dimuse.h 14 Jan 2004 22:07:24 -0000 1.18
+++ dimuse.h 15 Jan 2004 06:37:00 -0000 1.19
@@ -54,6 +54,7 @@
bool started;
int32 regionOffset;
int32 trackOffset;
+ int32 dataOffset;
bool sequence;
int curRegion;
int curHookId;
Index: dimuse_sndmgr.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_sndmgr.cpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- dimuse_sndmgr.cpp 14 Jan 2004 22:07:24 -0000 1.21
+++ dimuse_sndmgr.cpp 15 Jan 2004 06:37:00 -0000 1.22
@@ -331,6 +331,12 @@
return soundHandle->numMarkers;
}
+int ImuseDigiSndMgr::getRegionOffset(soundStruct *soundHandle, int region) {
+ assert(soundHandle && checkForProperHandle(soundHandle));
+ assert(region >= 0 && region < soundHandle->numRegions);
+ return soundHandle->region[region].offset;
+}
+
int ImuseDigiSndMgr::getJumpIdByRegionAndHookId(soundStruct *soundHandle, int region, int hookId) {
assert(soundHandle && checkForProperHandle(soundHandle));
assert(region >= 0 && region < soundHandle->numRegions);
Index: dimuse_sndmgr.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_sndmgr.h,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- dimuse_sndmgr.h 14 Jan 2004 22:07:24 -0000 1.15
+++ dimuse_sndmgr.h 15 Jan 2004 06:37:00 -0000 1.16
@@ -124,6 +124,7 @@
int getNumRegions(soundStruct *soundHandle);
int getNumJumps(soundStruct *soundHandle);
int getNumMarkers(soundStruct *soundHandle);
+ int getRegionOffset(soundStruct *soundHandle, int region);
int getJumpIdByRegionAndHookId(soundStruct *soundHandle, int region, int hookId);
int getRegionIdByJumpId(soundStruct *soundHandle, int jumpId);
int getJumpHookId(soundStruct *soundHandle, int number);
More information about the Scummvm-git-logs
mailing list