aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/imuse_digi
diff options
context:
space:
mode:
authorAdrian Frühwirth2018-01-19 20:47:48 +0100
committerEugene Sandulenko2018-01-31 16:38:07 +0100
commit16eac57834b06d15c182ece6eaf15abd103606eb (patch)
tree55364a795b20e7a8399c85d39dee75839ac5d4a8 /engines/scumm/imuse_digi
parent3a60637d77f620b94ae65fe137f99e6881075df2 (diff)
downloadscummvm-rg350-16eac57834b06d15c182ece6eaf15abd103606eb.tar.gz
scummvm-rg350-16eac57834b06d15c182ece6eaf15abd103606eb.tar.bz2
scummvm-rg350-16eac57834b06d15c182ece6eaf15abd103606eb.zip
SCUMM: implement lipsync for v7 games
Diffstat (limited to 'engines/scumm/imuse_digi')
-rw-r--r--engines/scumm/imuse_digi/dimuse.h1
-rw-r--r--engines/scumm/imuse_digi/dimuse_script.cpp13
2 files changed, 14 insertions, 0 deletions
diff --git a/engines/scumm/imuse_digi/dimuse.h b/engines/scumm/imuse_digi/dimuse.h
index 11b1ea678b..02f899df85 100644
--- a/engines/scumm/imuse_digi/dimuse.h
+++ b/engines/scumm/imuse_digi/dimuse.h
@@ -161,6 +161,7 @@ public:
int32 getCurVoiceLipSyncHeight();
int32 getCurMusicLipSyncWidth(int syncId);
int32 getCurMusicLipSyncHeight(int syncId);
+ int32 getSoundElapsedTimeInMs(int soundId);
};
} // End of namespace Scumm
diff --git a/engines/scumm/imuse_digi/dimuse_script.cpp b/engines/scumm/imuse_digi/dimuse_script.cpp
index f181e5b6db..3913a1a1f0 100644
--- a/engines/scumm/imuse_digi/dimuse_script.cpp
+++ b/engines/scumm/imuse_digi/dimuse_script.cpp
@@ -408,6 +408,19 @@ int32 IMuseDigital::getCurMusicLipSyncHeight(int syncId) {
return height;
}
+int32 IMuseDigital::getSoundElapsedTimeInMs(int soundId) {
+ Common::StackLock lock(_mutex, "IMuseDigital::getPosInMs()");
+ for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
+ Track *track = _track[l];
+ if (track->used && !track->toBeRemoved && (track->soundId == soundId)) {
+ int32 pos = (_mixer->getSoundElapsedTime(track->mixChanHandle));
+ return pos;
+ }
+ }
+
+ return 0;
+}
+
void IMuseDigital::stopAllSounds() {
Common::StackLock lock(_mutex, "IMuseDigital::stopAllSounds()");
debug(5, "IMuseDigital::stopAllSounds");