diff options
-rw-r--r-- | engines/sci/sound/softseq/adlib.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/engines/sci/sound/softseq/adlib.cpp b/engines/sci/sound/softseq/adlib.cpp index 5d0c9bef66..89e2fd8ff3 100644 --- a/engines/sci/sound/softseq/adlib.cpp +++ b/engines/sci/sound/softseq/adlib.cpp @@ -161,7 +161,11 @@ private: class MidiPlayer_Adlib : public MidiPlayer { public: MidiPlayer_Adlib() { _driver = new MidiDriver_Adlib(g_system->getMixer()); } + ~MidiPlayer_Adlib() {} + int open(ResourceManager *resMan); + void close(); + byte getPlayId(SciVersion soundVersion); int getPolyphony() const { return MidiDriver_Adlib::kVoices; } bool hasRhythmChannel() const { return false; } @@ -812,6 +816,14 @@ int MidiPlayer_Adlib::open(ResourceManager *resMan) { return static_cast<MidiDriver_Adlib *>(_driver)->open(getSciVersion() <= SCI_VERSION_0_LATE); } +void MidiPlayer_Adlib::close() { + if (_driver) { + _driver->close(); + delete _driver; + _driver = 0; + } +} + byte MidiPlayer_Adlib::getPlayId(SciVersion soundVersion) { switch (soundVersion) { case SCI_VERSION_0_EARLY: |