aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorMax Horn2011-03-23 11:47:07 +0100
committerMax Horn2011-03-23 15:25:46 +0100
commit7b02dac3c5678bb47216495fc97130b98ff2bfe4 (patch)
treeebeba91f309e1321b4a72136d59672b696eb7849 /engines/sci
parent99dbecf3b4a14382fa867610a43201fc150bfda9 (diff)
downloadscummvm-rg350-7b02dac3c5678bb47216495fc97130b98ff2bfe4.tar.gz
scummvm-rg350-7b02dac3c5678bb47216495fc97130b98ff2bfe4.tar.bz2
scummvm-rg350-7b02dac3c5678bb47216495fc97130b98ff2bfe4.zip
ENGINES: Use Common::StackLock in more places
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/sound/music.cpp21
1 files changed, 7 insertions, 14 deletions
diff --git a/engines/sci/sound/music.cpp b/engines/sci/sound/music.cpp
index a028617e74..0ed99c154b 100644
--- a/engines/sci/sound/music.cpp
+++ b/engines/sci/sound/music.cpp
@@ -303,7 +303,7 @@ void SciMusic::soundInitSnd(MusicEntry *pSnd) {
pSnd->hCurrentAud = Audio::SoundHandle();
} else {
// play MIDI track
- _mutex.lock();
+ Common::StackLock lock(_mutex);
pSnd->soundType = Audio::Mixer::kMusicSoundType;
if (pSnd->pMidiParser == NULL) {
pSnd->pMidiParser = new MidiParser_SCI(_soundVersion, this);
@@ -334,7 +334,6 @@ void SciMusic::soundInitSnd(MusicEntry *pSnd) {
pSnd->loop = prevLoop;
pSnd->hold = prevHold;
pSnd->pMidiParser->mainThreadEnd();
- _mutex.unlock();
}
}
}
@@ -441,7 +440,7 @@ void SciMusic::soundPlay(MusicEntry *pSnd) {
}
} else {
if (pSnd->pMidiParser) {
- _mutex.lock();
+ Common::StackLock lock(_mutex);
pSnd->pMidiParser->mainThreadBegin();
pSnd->pMidiParser->tryToOwnChannels();
if (pSnd->status != kSoundPaused)
@@ -468,7 +467,6 @@ void SciMusic::soundPlay(MusicEntry *pSnd) {
pSnd->loop = prevLoop;
pSnd->hold = prevHold;
pSnd->pMidiParser->mainThreadEnd();
- _mutex.unlock();
}
}
@@ -484,7 +482,7 @@ void SciMusic::soundStop(MusicEntry *pSnd) {
_pMixer->stopHandle(pSnd->hCurrentAud);
if (pSnd->pMidiParser) {
- _mutex.lock();
+ Common::StackLock lock(_mutex);
pSnd->pMidiParser->mainThreadBegin();
// We shouldn't call stop in case it's paused, otherwise we would send
// allNotesOff() again
@@ -492,7 +490,6 @@ void SciMusic::soundStop(MusicEntry *pSnd) {
pSnd->pMidiParser->stop();
freeChannels(pSnd);
pSnd->pMidiParser->mainThreadEnd();
- _mutex.unlock();
}
pSnd->fadeStep = 0; // end fading, if fading was in progress
@@ -504,11 +501,10 @@ void SciMusic::soundSetVolume(MusicEntry *pSnd, byte volume) {
// we simply ignore volume changes for samples, because sierra sci also
// doesn't support volume for samples via kDoSound
} else if (pSnd->pMidiParser) {
- _mutex.lock();
+ Common::StackLock lock(_mutex);
pSnd->pMidiParser->mainThreadBegin();
pSnd->pMidiParser->setVolume(volume);
pSnd->pMidiParser->mainThreadEnd();
- _mutex.unlock();
}
}
@@ -530,13 +526,12 @@ void SciMusic::soundKill(MusicEntry *pSnd) {
pSnd->status = kSoundStopped;
if (pSnd->pMidiParser) {
- _mutex.lock();
+ Common::StackLock lock(_mutex);
pSnd->pMidiParser->mainThreadBegin();
pSnd->pMidiParser->unloadMusic();
pSnd->pMidiParser->mainThreadEnd();
delete pSnd->pMidiParser;
pSnd->pMidiParser = NULL;
- _mutex.unlock();
}
if (pSnd->pStreamAud) {
@@ -547,7 +542,7 @@ void SciMusic::soundKill(MusicEntry *pSnd) {
pSnd->pLoopStream = 0;
}
- _mutex.lock();
+ Common::StackLock lock(_mutex);
uint sz = _playList.size(), i;
// Remove sound from playlist
for (i = 0; i < sz; i++) {
@@ -558,7 +553,6 @@ void SciMusic::soundKill(MusicEntry *pSnd) {
break;
}
}
- _mutex.unlock();
}
void SciMusic::soundPause(MusicEntry *pSnd) {
@@ -581,12 +575,11 @@ void SciMusic::soundPause(MusicEntry *pSnd) {
_pMixer->pauseHandle(pSnd->hCurrentAud, true);
} else {
if (pSnd->pMidiParser) {
- _mutex.lock();
+ Common::StackLock lock(_mutex);
pSnd->pMidiParser->mainThreadBegin();
pSnd->pMidiParser->pause();
freeChannels(pSnd);
pSnd->pMidiParser->mainThreadEnd();
- _mutex.unlock();
}
}
}