From 98bfede1fc0c45c6fb662646ed7158ba392201c3 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Tue, 26 Apr 2022 15:06:40 +0200 Subject: [PATCH] Restore connections when using templates This also fixes an issue when duplicating tracks. Saved connections were ignored and tracks were auto-connected. --- libs/ardour/session.cc | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index 5abcabee47..b397ce90ab 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -3113,7 +3113,7 @@ Session::new_route_from_template (uint32_t how_many, PresentationInfo::order_t i out: if (!ret.empty()) { - add_routes (ret, true, true, insert_at); + add_routes (ret, false, false, insert_at); } if (!ret.empty()) { @@ -3128,6 +3128,25 @@ Session::new_route_from_template (uint32_t how_many, PresentationInfo::order_t i (*x)->remove_monitor_send (); } } + /* reconnect ports using information from state */ + for (auto const& wio : (*x)->all_inputs ()) { + boost::shared_ptr io = wio.lock(); + if (!io) { + continue; + } + for (auto const& p : io->ports()) { + p->reconnect (); + } + } + for (auto const& wio : (*x)->all_outputs ()) { + boost::shared_ptr io = wio.lock(); + if (!io) { + continue; + } + for (auto const& p : io->ports()) { + p->reconnect (); + } + } } }