From 0a957162d7fa2c062a32755b2a729e0e3158dd05 Mon Sep 17 00:00:00 2001 From: Werner Schweer Date: Thu, 19 Oct 2006 11:59:41 +0000 Subject: fix core on exit --- muse/muse/audio.cpp | 7 +++---- muse/muse/audio.h | 2 +- muse/muse/midiinport.cpp | 2 +- muse/muse/muse.cpp | 5 +++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/muse/muse/audio.cpp b/muse/muse/audio.cpp index 6d74f02e..205068c8 100644 --- a/muse/muse/audio.cpp +++ b/muse/muse/audio.cpp @@ -228,17 +228,16 @@ bool Audio::start() // stop audio processing //--------------------------------------------------------- -void Audio::stop(bool) +void Audio::stop() { - if (audioDriver) - audioDriver->stop(); - MidiOutPortList* opl = song->midiOutPorts(); for (iMidiOutPort i = opl->begin(); i != opl->end(); ++i) (*i)->deactivate(); MidiInPortList* ipl = song->midiInPorts(); for (iMidiInPort i = ipl->begin(); i != ipl->end(); ++i) (*i)->deactivate(); + if (audioDriver) + audioDriver->stop(); } //--------------------------------------------------------- diff --git a/muse/muse/audio.h b/muse/muse/audio.h index 18530398..afcd092b 100644 --- a/muse/muse/audio.h +++ b/muse/muse/audio.h @@ -204,7 +204,7 @@ class Audio { // transport: bool start(); - void stop(bool); + void stop(); void seek(const Pos& pos); bool isPlaying() const { return state == PLAY || state == LOOP1 || state == LOOP2; } diff --git a/muse/muse/midiinport.cpp b/muse/muse/midiinport.cpp index ca49d97b..c73cd7a2 100644 --- a/muse/muse/midiinport.cpp +++ b/muse/muse/midiinport.cpp @@ -149,7 +149,7 @@ void MidiInPort::deactivate() else printf("MidiInPort::deactivate(): jack port not active!\n"); if (_alsaPort) { - audioDriver->unregisterPort(_alsaPort); + midiDriver->unregisterPort(_alsaPort); _alsaPort = 0; } else diff --git a/muse/muse/muse.cpp b/muse/muse/muse.cpp index c6cfd79f..5c080410 100644 --- a/muse/muse/muse.cpp +++ b/muse/muse/muse.cpp @@ -171,7 +171,7 @@ static void* watchdog(void*) } // printf("wd %d %d %d\n", watchMidi, watchAudio, fatal); } - audio->stop(true); + audio->stop(); audioWriteback->stop(true); audioPrefetch->stop(true); fatalError("watchdog timeout"); @@ -184,6 +184,7 @@ static void* watchdog(void*) bool MusE::seqStart() { +// audio->msgIdle(false); if (audioState != AUDIO_STOP) { printf("seqStart(): already running\n"); return true; @@ -283,7 +284,7 @@ void MusE::seqStop() song->setStop(true); song->setStopPlay(false); midiSeq->stop(true); - audio->stop(true); + audio->stop(); audioWriteback->stop(true); audioPrefetch->stop(true); if (realTimePriority) -- cgit v1.2.3