diff options
Diffstat (limited to 'engines/scumm/imuse_digi')
-rw-r--r-- | engines/scumm/imuse_digi/dimuse.h | 1 | ||||
-rw-r--r-- | engines/scumm/imuse_digi/dimuse_script.cpp | 13 |
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"); |