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++) {  | 
