[Scummvm-cvs-logs] CVS: scummvm/scumm/imuse_digi dimuse.cpp,1.2,1.3 dimuse.h,1.3,1.4
Pawel Kolodziejski
aquadran at users.sourceforge.net
Tue Jan 6 21:18:01 CET 2004
Update of /cvsroot/scummvm/scummvm/scumm/imuse_digi
In directory sc8-pr-cvs1:/tmp/cvs-serv31662
Modified Files:
dimuse.cpp dimuse.h
Log Message:
added code for ms track position
Index: dimuse.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- dimuse.cpp 6 Jan 2004 19:47:23 -0000 1.2
+++ dimuse.cpp 7 Jan 2004 05:17:51 -0000 1.3
@@ -223,6 +223,7 @@
int bits = 0, freq = 0, channels = 0, mixerFlags = 0;
if (input) {
+ _track[l].iteration = 1; // ?
// Do nothing here, we already have an audio stream
} else {
if (soundName == NULL)
@@ -236,6 +237,9 @@
bits = _sound->getBits(_track[l].soundHandle);
channels = _sound->getChannels(_track[l].soundHandle);
freq = _sound->getFreq(_track[l].soundHandle);
+ _track[l].iteration = freq * channels;
+ if ((bits == 12) || (bits == 16))
+ _track[l].iteration *= 2;
if (channels == 2) {
mixerFlags = SoundMixer::FLAG_STEREO | SoundMixer::FLAG_REVERSE_STEREO;
@@ -548,28 +552,39 @@
// TODO
}
-int32 IMuseDigital::getCurMusicPosInMs() {
- // TODO
+int32 IMuseDigital::getPosInMs(int soundId) {
+ debug(5, "IMuseDigital::getPosInMs(%d)", soundId);
+ for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
+ if ((_track[l].idSound == soundId) && _track[l].used) {
+ int32 pos = 1000 * _track[l].trackOffset / _track[l].iteration;
+ return pos;
+ }
+ }
+
return 0;
}
+int32 IMuseDigital::getCurMusicPosInMs() {
+ return getPosInMs(_curMusicId);
+}
+
int32 IMuseDigital::getCurVoiceLipSyncWidth() {
- // TODO
+ int32 pos = getPosInMs(kTalkSoundID);
return _scumm->_rnd.getRandomNumber(255);
}
int32 IMuseDigital::getCurVoiceLipSyncHeight() {
- // TODO
+ int32 pos = getPosInMs(kTalkSoundID);
return _scumm->_rnd.getRandomNumber(255);
}
int32 IMuseDigital::getCurMusicLipSyncWidth() {
- // TODO
+ int32 pos = getPosInMs(_curMusicId);
return _scumm->_rnd.getRandomNumber(255);
}
int32 IMuseDigital::getCurMusicLipSyncHeight() {
- // TODO
+ int32 pos = getPosInMs(_curMusicId);
return _scumm->_rnd.getRandomNumber(255);
}
Index: dimuse.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- dimuse.h 6 Jan 2004 19:47:23 -0000 1.3
+++ dimuse.h 7 Jan 2004 05:17:51 -0000 1.4
@@ -55,6 +55,7 @@
int curRegion;
int curHookId;
int soundGroup;
+ int iteration;
void *soundHandle;
int32 pullSize;
int mod;
@@ -103,6 +104,7 @@
void pause(bool pause);
void parseScriptCmds(int a, int b, int c, int d, int e, int f, int g, int h);
int getSoundStatus(int sound) const;
+ int32 getPosInMs(int soundId);
int32 getCurMusicPosInMs();
int32 getCurVoiceLipSyncWidth();
int32 getCurVoiceLipSyncHeight();
More information about the Scummvm-git-logs
mailing list