From 12c558f62e67974ca84fc517f21397bdfa1f9737 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 20 Oct 2016 11:34:14 -0400 Subject: tweak logic for MIDI input follows selection --- libs/ardour/session_midi.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'libs/ardour/session_midi.cc') diff --git a/libs/ardour/session_midi.cc b/libs/ardour/session_midi.cc index a0c1b8c7d4..eb2dce2767 100644 --- a/libs/ardour/session_midi.cc +++ b/libs/ardour/session_midi.cc @@ -759,13 +759,15 @@ Session::rewire_selected_midi (boost::shared_ptr new_midi_target) AudioEngine::instance()->get_midi_selection_ports (msp); if (!msp.empty()) { + if (old_midi_target) { - for (PortManager::MidiSelectionPorts::const_iterator p = msp.begin(); p != msp.end(); ++p) { - AudioEngine::instance()->disconnect (*p); - } + old_midi_target->input()->disconnect (this); } for (PortManager::MidiSelectionPorts::const_iterator p = msp.begin(); p != msp.end(); ++p) { + /* disconnect the port from everything */ + AudioEngine::instance()->disconnect (*p); + /* connect it to the new target */ new_midi_target->input()->connect (new_midi_target->input()->nth(0), (*p), this); } } -- cgit v1.2.3