summaryrefslogtreecommitdiff
path: root/libs/ardour
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2012-03-07 13:24:20 +0000
committerCarl Hetherington <carl@carlh.net>2012-03-07 13:24:20 +0000
commit09814ab84057ca20849556964d4ee4a24f30cb9e (patch)
tree8a73493ddee6f53db6188489fb77c888b4d48998 /libs/ardour
parent5d82179323ccadff0107143914c796e1c09c6793 (diff)
Patch from colinf to fix auto-connect of bus outputs (#4758).
git-svn-id: svn://localhost/ardour2/branches/3.0@11615 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour')
-rw-r--r--libs/ardour/ardour/session.h2
-rw-r--r--libs/ardour/session.cc16
-rw-r--r--libs/ardour/session_state.cc4
3 files changed, 11 insertions, 11 deletions
diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h
index a0e1b5a0fd..001e20ec6f 100644
--- a/libs/ardour/ardour/session.h
+++ b/libs/ardour/ardour/session.h
@@ -1224,7 +1224,7 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi
SerializedRCUManager<RouteList> routes;
- void add_routes (RouteList&, bool auto_connect, bool save);
+ void add_routes (RouteList&, bool input_auto_connect, bool output_auto_connect, bool save);
uint32_t destructive_index;
boost::shared_ptr<Route> XMLRouteFactory (const XMLNode&, int);
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index bafa50a275..42ad0604b8 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -673,7 +673,7 @@ Session::add_monitor_section ()
}
rl.push_back (r);
- add_routes (rl, false, false);
+ add_routes (rl, false, false, false);
assert (_monitor_out);
@@ -1646,7 +1646,7 @@ Session::new_midi_track (boost::shared_ptr<PluginInfo> instrument, TrackMode mod
failed:
if (!new_routes.empty()) {
- add_routes (new_routes, true, true);
+ add_routes (new_routes, true, true, true);
if (instrument) {
for (RouteList::iterator r = new_routes.begin(); r != new_routes.end(); ++r) {
@@ -1889,7 +1889,7 @@ Session::new_audio_track (int input_channels, int output_channels, TrackMode mod
failed:
if (!new_routes.empty()) {
- add_routes (new_routes, true, true);
+ add_routes (new_routes, true, true, true);
}
return ret;
@@ -2001,7 +2001,7 @@ Session::new_audio_route (int input_channels, int output_channels, RouteGroup* r
failure:
if (!ret.empty()) {
- add_routes (ret, false, true);
+ add_routes (ret, false, true, true); // autoconnect outputs only
}
return ret;
@@ -2100,7 +2100,7 @@ Session::new_route_from_template (uint32_t how_many, const std::string& template
out:
if (!ret.empty()) {
- add_routes (ret, true, true);
+ add_routes (ret, true, true, true);
IO::enable_connecting ();
}
@@ -2108,7 +2108,7 @@ Session::new_route_from_template (uint32_t how_many, const std::string& template
}
void
-Session::add_routes (RouteList& new_routes, bool auto_connect, bool save)
+Session::add_routes (RouteList& new_routes, bool input_auto_connect, bool output_auto_connect, bool save)
{
ChanCount existing_inputs;
ChanCount existing_outputs;
@@ -2165,8 +2165,8 @@ Session::add_routes (RouteList& new_routes, bool auto_connect, bool save)
}
}
- if (auto_connect) {
- auto_connect_route (r, existing_inputs, existing_outputs, true);
+ if (input_auto_connect || output_auto_connect) {
+ auto_connect_route (r, existing_inputs, existing_outputs, true, input_auto_connect);
}
}
diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc
index 59d465a3ef..013e07ada5 100644
--- a/libs/ardour/session_state.cc
+++ b/libs/ardour/session_state.cc
@@ -605,7 +605,7 @@ Session::create (const string& session_template, BusProfile* bus_profile)
}
if (!rl.empty()) {
- add_routes (rl, false, false);
+ add_routes (rl, false, false, false);
}
/* this allows the user to override settings with an environment variable.
@@ -1473,7 +1473,7 @@ Session::load_routes (const XMLNode& node, int version)
new_routes.push_back (route);
}
- add_routes (new_routes, false, false);
+ add_routes (new_routes, false, false, false);
return 0;
}