aboutsummaryrefslogtreecommitdiff
path: root/engines/hugo/sound.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/hugo/sound.cpp')
-rw-r--r--engines/hugo/sound.cpp24
1 files changed, 10 insertions, 14 deletions
diff --git a/engines/hugo/sound.cpp b/engines/hugo/sound.cpp
index daa467f517..f80faea5aa 100644
--- a/engines/hugo/sound.cpp
+++ b/engines/hugo/sound.cpp
@@ -60,7 +60,16 @@ MidiPlayer::MidiPlayer(MidiDriver *driver)
}
MidiPlayer::~MidiPlayer() {
- close();
+ stop();
+
+ Common::StackLock lock(_mutex);
+ _driver->setTimerCallback(0, 0);
+ _driver->close();
+ delete _driver;
+ _driver = 0;
+ if (_parser)
+ _parser->setMidiDriver(0);
+ delete _parser;
}
bool MidiPlayer::isPlaying() const {
@@ -179,19 +188,6 @@ int MidiPlayer::open() {
return 0;
}
-void MidiPlayer::close() {
- stop();
-
- Common::StackLock lock(_mutex);
- _driver->setTimerCallback(0, 0);
- _driver->close();
- delete _driver;
- _driver = 0;
- if (_parser)
- _parser->setMidiDriver(0);
- delete _parser;
-}
-
void MidiPlayer::send(uint32 b) {
byte volume, ch = (byte)(b & 0xF);
debugC(9, kDebugMusic, "MidiPlayer::send, channel %d (volume is %d)", ch, _channelsVolume[ch]);