fix crash caused by closing down JACK but not telling JACK_MidiPorts about it

git-svn-id: svn://localhost/ardour2/branches/3.0@6412 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2009-12-30 02:58:57 +00:00
parent 77cc0f7cc8
commit 59a61c4357
2 changed files with 13 additions and 2 deletions

View file

@ -228,6 +228,7 @@ AudioEngine::stop (bool forever)
} else {
jack_deactivate (_priv_jack);
Stopped(); /* EMIT SIGNAL */
MIDI::JACK_MidiPort::JackHalted (); /* EMIT SIGNAL */
}
}
@ -918,6 +919,7 @@ AudioEngine::halted (void *arg)
if (was_running) {
ae->Halted(); /* EMIT SIGNAL */
MIDI::JACK_MidiPort::JackHalted (); /* EMIT SIGNAL */
}
}
@ -1182,6 +1184,7 @@ AudioEngine::disconnect_from_jack ()
if (_running) {
_running = false;
Stopped(); /* EMIT SIGNAL */
MIDI::JACK_MidiPort::JackHalted (); /* EMIT SIGNAL */
}
return 0;

View file

@ -293,7 +293,7 @@ JACK_MidiPort::get_state () const
XMLNode& root (Port::get_state ());
if (_jack_output_port) {
const char** jc = jack_port_get_connections (_jack_output_port);
string connection_string;
if (jc) {
@ -305,10 +305,14 @@ JACK_MidiPort::get_state () const
}
free (jc);
}
if (!connection_string.empty()) {
root.add_property ("outbound", connection_string);
}
} else {
if (!_outbound_connections.empty()) {
root.add_property ("outbound", _outbound_connections);
}
}
if (_jack_input_port) {
@ -328,6 +332,10 @@ JACK_MidiPort::get_state () const
if (!connection_string.empty()) {
root.add_property ("inbound", connection_string);
}
} else {
if (!_inbound_connections.empty()) {
root.add_property ("inbound", _inbound_connections);
}
}
return root;