summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWerner Schweer <ws.seh.de>2006-10-19 11:59:41 +0000
committerWerner Schweer <ws.seh.de>2006-10-19 11:59:41 +0000
commit0a957162d7fa2c062a32755b2a729e0e3158dd05 (patch)
treeba2bf5e2c0dd04de919f338bf852ba90ed42897f
parenta585fed6a8e992158b04ec5e06504e4920b88b2e (diff)
fix core on exit
-rw-r--r--muse/muse/audio.cpp7
-rw-r--r--muse/muse/audio.h2
-rw-r--r--muse/muse/midiinport.cpp2
-rw-r--r--muse/muse/muse.cpp5
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)