aboutsummaryrefslogtreecommitdiff
path: root/engines/tinsel/tinsel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/tinsel/tinsel.cpp')
-rw-r--r--engines/tinsel/tinsel.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/engines/tinsel/tinsel.cpp b/engines/tinsel/tinsel.cpp
index 8cfc6d7d4d..946c9338ba 100644
--- a/engines/tinsel/tinsel.cpp
+++ b/engines/tinsel/tinsel.cpp
@@ -914,8 +914,13 @@ void TinselEngine::RestartDrivers(void) {
pMouseProcess = _scheduler->createProcess(PID_MOUSE, MouseProcess, NULL, 0);
pKeyboardProcess = _scheduler->createProcess(PID_KEYBOARD, KeyboardProcess, NULL, 0);
- // install sound driver
- SoundInit();
+ // open MIDI files
+ OpenMidiFiles();
+
+ // open sample files (only if mixer is ready)
+ if (_mixer->isReady()) {
+ _sound->openSampleFiles();
+ }
// Set midi volume
SetMidiVolume(volMidi);
@@ -927,7 +932,9 @@ void TinselEngine::RestartDrivers(void) {
void TinselEngine::ChopDrivers(void) {
// remove sound driver
- SoundDeinit();
+ StopMidi();
+ _sound->stopAllSamples();
+ DeleteMidiBuffer();
// remove event drivers
_scheduler->killProcess(pMouseProcess);