diff options
-rw-r--r-- | common/util.cpp | 10 | ||||
-rw-r--r-- | common/util.h | 4 | ||||
-rw-r--r-- | scumm/imuse_digi/dimuse.cpp | 30 |
3 files changed, 26 insertions, 18 deletions
diff --git a/common/util.cpp b/common/util.cpp index 962f3d9afd..601894883d 100644 --- a/common/util.cpp +++ b/common/util.cpp @@ -103,8 +103,8 @@ uint RandomSource::getRandomNumberRng(uint min, uint max) { #pragma mark - -StackLock::StackLock(OSystem::MutexRef mutex, OSystem *syst) - : _mutex(mutex), _syst(syst) { +StackLock::StackLock(OSystem::MutexRef mutex, OSystem *syst, char *mutexName) + : _mutex(mutex), _syst(syst), _mutexName(mutexName) { if (syst == 0) _syst = g_system; lock(); @@ -116,11 +116,17 @@ StackLock::~StackLock() { void StackLock::lock() { assert(_syst); + if (_mutexName != NULL) + debug(5, "Locking mutex %s", _mutexName); + _syst->lock_mutex(_mutex); } void StackLock::unlock() { assert(_syst); + if (_mutexName != NULL) + debug(5, "Unlocking mutex %s", _mutexName); + _syst->unlock_mutex(_mutex); } diff --git a/common/util.h b/common/util.h index 7b91104523..e05cc12c71 100644 --- a/common/util.h +++ b/common/util.h @@ -81,10 +81,12 @@ public: class StackLock { OSystem::MutexRef _mutex; OSystem *_syst; + char *_mutexName; + void lock(); void unlock(); public: - StackLock(OSystem::MutexRef mutex, OSystem *syst = 0); + StackLock(OSystem::MutexRef mutex, OSystem *syst = 0, char *mutexName = NULL); ~StackLock(); }; diff --git a/scumm/imuse_digi/dimuse.cpp b/scumm/imuse_digi/dimuse.cpp index 5a4203d644..a5476af134 100644 --- a/scumm/imuse_digi/dimuse.cpp +++ b/scumm/imuse_digi/dimuse.cpp @@ -65,7 +65,7 @@ IMuseDigital::~IMuseDigital() { } void IMuseDigital::callback() { - Common::StackLock lock(_mutex); + Common::StackLock lock(_mutex, g_system, "IMuseDigital::callback()"); int l = 0; if (_pause || !_vm) @@ -243,7 +243,7 @@ void IMuseDigital::switchToNextRegion(int track) { } void IMuseDigital::startSound(int soundId, const char *soundName, int soundType, int soundGroup, AudioStream *input, bool sequence, int hookId, int volume, bool wait) { - Common::StackLock lock(_mutex); + Common::StackLock lock(_mutex, g_system, "IMuseDigital::startSound()"); debug(5, "IMuseDigital::startSound(%d)", soundId); int l; @@ -329,7 +329,7 @@ void IMuseDigital::startSound(int soundId, const char *soundName, int soundType, } void IMuseDigital::stopSound(int soundId) { - Common::StackLock lock(_mutex); + Common::StackLock lock(_mutex, g_system, "IMuseDigital::stopSound()"); debug(5, "IMuseDigital::stopSound(%d)", soundId); for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) { if ((_track[l].soundId == soundId) && _track[l].used) { @@ -343,7 +343,7 @@ void IMuseDigital::stopSound(int soundId) { } void IMuseDigital::setVolume(int soundId, int volume) { - Common::StackLock lock(_mutex); + Common::StackLock lock(_mutex, g_system, "IMuseDigital::setVolume()"); debug(5, "IMuseDigital::setVolumeSound(%d, %d)", soundId, volume); for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) { if ((_track[l].soundId == soundId) && _track[l].used) { @@ -353,7 +353,7 @@ void IMuseDigital::setVolume(int soundId, int volume) { } void IMuseDigital::setPan(int soundId, int pan) { - Common::StackLock lock(_mutex); + Common::StackLock lock(_mutex, g_system, "IMuseDigital::setPan()"); debug(5, "IMuseDigital::setVolumeSound(%d, %d)", soundId, pan); for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) { if ((_track[l].soundId == soundId) && _track[l].used) { @@ -363,7 +363,7 @@ void IMuseDigital::setPan(int soundId, int pan) { } void IMuseDigital::setFade(int soundId, int destVolume, int delay60HzTicks) { - Common::StackLock lock(_mutex); + Common::StackLock lock(_mutex, g_system, "IMuseDigital::setFade()"); debug(5, "IMuseDigital::setFade(%d, %d, %d)", soundId, destVolume, delay60HzTicks); for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) { if ((_track[l].soundId == soundId) && _track[l].used) { @@ -376,7 +376,7 @@ void IMuseDigital::setFade(int soundId, int destVolume, int delay60HzTicks) { } void IMuseDigital::stopAllSounds(bool waitForStop) { - Common::StackLock lock(_mutex); + Common::StackLock lock(_mutex, g_system, "IMuseDigital::stopAllSounds()"); debug(5, "IMuseDigital::stopAllSounds"); for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) { if (_track[l].used) { @@ -401,7 +401,7 @@ void IMuseDigital::stopAllSounds(bool waitForStop) { } void IMuseDigital::fadeOutMusic(int fadeDelay) { - Common::StackLock lock(_mutex); + Common::StackLock lock(_mutex, g_system, "IMuseDigital::fadeOutMusic()"); debug(5, "IMuseDigital::fadeOutMusic"); for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) { if ((_track[l].used) && (!_track[l].waitForEndSeq) && (_track[l].soundGroup == IMUSE_MUSIC) && (!_track[l].volFadeUsed)) { @@ -414,7 +414,7 @@ void IMuseDigital::fadeOutMusic(int fadeDelay) { } void IMuseDigital::pause(bool p) { - Common::StackLock lock(_mutex); + Common::StackLock lock(_mutex, g_system, "IMuseDigital::pause()"); for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) { if (_track[l].used) { _vm->_mixer->pauseHandle(_track[l].handle, p); @@ -554,7 +554,7 @@ void IMuseDigital::parseScriptCmds(int a, int b, int c, int d, int e, int f, int } int IMuseDigital::getSoundStatus(int sound) const { - Common::StackLock lock(_mutex); + Common::StackLock lock(_mutex, g_system, "IMuseDigital::getSoundStatus()"); debug(5, "IMuseDigital::getSoundStatus(%d)", sound); for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) { if ((_track[l].soundId == sound) && _track[l].used) { @@ -608,7 +608,7 @@ int32 IMuseDigital::getPosInMs(int soundId) { } int32 IMuseDigital::getCurMusicPosInMs() { - Common::StackLock lock(_mutex); + Common::StackLock lock(_mutex, g_system, "IMuseDigital::getCurMusicPosInMs()"); int soundId = -1; for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) { @@ -623,7 +623,7 @@ int32 IMuseDigital::getCurMusicPosInMs() { } int32 IMuseDigital::getCurVoiceLipSyncWidth() { - Common::StackLock lock(_mutex); + Common::StackLock lock(_mutex, g_system, "IMuseDigital::getCutVoiceLipSyncWidth()"); int32 msPos = getPosInMs(kTalkSoundID) + _vm->VAR(_vm->VAR_SYNC) + 50; int32 width = 0, height = 0; @@ -633,7 +633,7 @@ int32 IMuseDigital::getCurVoiceLipSyncWidth() { } int32 IMuseDigital::getCurVoiceLipSyncHeight() { - Common::StackLock lock(_mutex); + Common::StackLock lock(_mutex, g_system, "IMuseDigital::getCurVoiceLipSyncHeight()"); int32 msPos = getPosInMs(kTalkSoundID) + _vm->VAR(_vm->VAR_SYNC) + 50; int32 width = 0, height = 0; @@ -643,7 +643,7 @@ int32 IMuseDigital::getCurVoiceLipSyncHeight() { } int32 IMuseDigital::getCurMusicLipSyncWidth(int syncId) { - Common::StackLock lock(_mutex); + Common::StackLock lock(_mutex, g_system, "IMuseDigital::getCurMusicLipSyncWidth()"); int soundId = -1; for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) { @@ -661,7 +661,7 @@ int32 IMuseDigital::getCurMusicLipSyncWidth(int syncId) { } int32 IMuseDigital::getCurMusicLipSyncHeight(int syncId) { - Common::StackLock lock(_mutex); + Common::StackLock lock(_mutex, g_system, "IMuseDigital::getCurMusicLipSyncHeight()"); int soundId = -1; for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) { |