summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2020-04-03 15:35:21 +0200
committerRobin Gareus <robin@gareus.org>2020-04-03 15:36:19 +0200
commitc16ab3a248244b0ca7002931769336e6fafcc491 (patch)
treea066a4e7cdd72a9be556af860c4dc2ab4f678d11
parent80f3b54be4d2f3355dcc6bff847913e85b1b115a (diff)
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.
-rw-r--r--libs/ardour/ardour/session.h3
-rw-r--r--libs/ardour/session.cc4
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<boost::shared_ptr<MidiTrack> > 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<AudioTrack> >
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;