aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuediger Hanke2002-10-11 13:08:02 +0000
committerRuediger Hanke2002-10-11 13:08:02 +0000
commit8ea56e58a86ca14fa4420ba573ac9d9c0a5602a9 (patch)
tree03e9b60ac1d8f94e52d13ac46a1722820cd41752
parent2d22cc45673e965ebbd70ce4acb5ed5e458701f1 (diff)
downloadscummvm-rg350-8ea56e58a86ca14fa4420ba573ac9d9c0a5602a9.tar.gz
scummvm-rg350-8ea56e58a86ca14fa4420ba573ac9d9c0a5602a9.tar.bz2
scummvm-rg350-8ea56e58a86ca14fa4420ba573ac9d9c0a5602a9.zip
Close Etude midi driver on exit in the ugghliest way possible
svn-id: r5129
-rw-r--r--backends/morphos/morphos_start.cpp5
-rw-r--r--sound/mididrv.cpp5
2 files changed, 9 insertions, 1 deletions
diff --git a/backends/morphos/morphos_start.cpp b/backends/morphos/morphos_start.cpp
index ead98ce614..305cfc0b02 100644
--- a/backends/morphos/morphos_start.cpp
+++ b/backends/morphos/morphos_start.cpp
@@ -36,6 +36,7 @@
#include "stdafx.h"
#include "scumm/scumm.h"
+#include "sound/mididrv.h"
#include "morphos.h"
#include "morphos_scaler.h"
#include "morphos_sound.h"
@@ -51,6 +52,7 @@ static RDArgs *ScummArgs = NULL;
static char*ScummStory = NULL;
static char*ScummPath = NULL;
STRPTR ScummMusicDriver = NULL;
+MidiDriver* EtudeMidiDriver = NULL;
LONG ScummMidiUnit = 0;
static LONG ScummMidiVolume = 0;
static LONG ScummMidiTempo = 0;
@@ -92,6 +94,9 @@ OSystem *OSystem_MorphOS_create(int game_id, int gfx_mode, bool full_screen)
void close_resources()
{
+ if (EtudeMidiDriver)
+ EtudeMidiDriver->close();
+
if (TheSystem)
delete TheSystem;
diff --git a/sound/mididrv.cpp b/sound/mididrv.cpp
index da314302a0..bf5395c2e4 100644
--- a/sound/mididrv.cpp
+++ b/sound/mididrv.cpp
@@ -506,9 +506,12 @@ uint32 MidiDriver_ETUDE::property(int prop, uint32 param)
return 0;
}
+extern MidiDriver* EtudeMidiDriver;
+
MidiDriver *MidiDriver_ETUDE_create()
{
- return new MidiDriver_ETUDE();
+ EtudeMidiDriver = new MidiDriver_ETUDE();
+ return EtudeMidiDriver;
}
#endif // __MORPHOS__