From 361fd53ef3804773a17ef243dc7edc8a6a5f22ee Mon Sep 17 00:00:00 2001 From: Florian Kagerer Date: Wed, 16 Sep 2009 20:42:10 +0000 Subject: Kyra/LoL: fix pc98 audio driver destructor svn-id: r44117 --- engines/kyra/sound_towns.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'engines/kyra') diff --git a/engines/kyra/sound_towns.cpp b/engines/kyra/sound_towns.cpp index 27c962b8c9..448b598bf6 100644 --- a/engines/kyra/sound_towns.cpp +++ b/engines/kyra/sound_towns.cpp @@ -1622,6 +1622,9 @@ protected: virtual void timerCallbackA() = 0; virtual void timerCallbackB() = 0; + void lock() { _mutex.lock(); } + void unlock() { _mutex.unlock(); } + const int _numChan; const int _numSSG; const bool _hasPercussion; @@ -1630,6 +1633,8 @@ private: void nextTick(int32 *buffer, uint32 bufferSize); void generateOutput(int32 &leftSample, int32 &rightSample, int32 *del, int32 *feed); + Common::Mutex _mutex; + struct ChanInternal { uint16 frqTemp; bool enableLeft; @@ -1715,16 +1720,11 @@ protected: void setMusicTempo(uint8 tempo); void setSfxTempo(uint16 tempo); - void lock() { _mutex.lock(); } - void unlock() { _mutex.unlock(); } - TownsPC98_OpnChannel **_channels; TownsPC98_OpnChannelSSG **_ssgChannels; TownsPC98_OpnSfxChannel **_sfxChannels; TownsPC98_OpnChannelPCM *_rhythmChannel; - Common::Mutex _mutex; - const uint8 *_opnCarrier; const uint8 *_opnFreqTable; const uint8 *_opnFreqTableSSG; @@ -2941,6 +2941,7 @@ TownsPC98_OpnCore::TownsPC98_OpnCore(Audio::Mixer *mixer, OpnType type) : } TownsPC98_OpnCore::~TownsPC98_OpnCore() { + _mixer->stopHandle(_soundHandle); delete _ssg; delete _prc; delete[] _chanInternal; -- cgit v1.2.3