aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/util.cpp10
-rw-r--r--common/util.h4
-rw-r--r--scumm/imuse_digi/dimuse.cpp30
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++) {