diff options
-rw-r--r-- | libs/ardour/audioengine.cc | 3 | ||||
-rw-r--r-- | libs/midi++2/jack_midiport.cc | 12 |
2 files changed, 13 insertions, 2 deletions
diff --git a/libs/ardour/audioengine.cc b/libs/ardour/audioengine.cc index 634d62cc0b..322365fb9f 100644 --- a/libs/ardour/audioengine.cc +++ b/libs/ardour/audioengine.cc @@ -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; diff --git a/libs/midi++2/jack_midiport.cc b/libs/midi++2/jack_midiport.cc index 35e9ade1a3..b944a19ea6 100644 --- a/libs/midi++2/jack_midiport.cc +++ b/libs/midi++2/jack_midiport.cc @@ -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; |