aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/sci/sound/softseq/adlib.cpp12
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: