From c16ab3a248244b0ca7002931769336e6fafcc491 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Fri, 3 Apr 2020 15:35:21 +0200 Subject: Allow to disable input auto-connect when creating tracks Auto-connect is handled in a background thread, so newly created tracks are not immediately connected. This causes a race-condition when fan-out directly disconnects and re-connects ports after track/bus creation. --- libs/ardour/ardour/session.h | 3 ++- libs/ardour/session.cc | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index b752bd23ea..b3018f7102 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -697,7 +697,8 @@ public: uint32_t how_many, std::string name_template, PresentationInfo::order_t order, - TrackMode mode = Normal + TrackMode mode = Normal, + bool input_auto_connect = true ); std::list > new_midi_track ( diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index 6e34985136..5510f738ce 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -2695,7 +2695,7 @@ Session::ensure_route_presentation_info_gap (PresentationInfo::order_t first_new list< boost::shared_ptr > Session::new_audio_track (int input_channels, int output_channels, RouteGroup* route_group, uint32_t how_many, string name_template, PresentationInfo::order_t order, - TrackMode mode) + TrackMode mode, bool input_auto_connect) { string track_name; uint32_t track_id = 0; @@ -2773,7 +2773,7 @@ Session::new_audio_track (int input_channels, int output_channels, RouteGroup* r failed: if (!new_routes.empty()) { StateProtector sp (this); - add_routes (new_routes, true, true, false, order); + add_routes (new_routes, input_auto_connect, true, false, order); } return ret; -- cgit v1.2.3