summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-09-06 20:59:15 +0000
committerCarl Hetherington <carl@carlh.net>2010-09-06 20:59:15 +0000
commite1106c39b86fdb4e1ddca0972fea308c5ed849cc (patch)
tree2c62a15a5052f921a469763245c2cd745e61dc20 /libs
parentea2648503b520e3da54263ce0bafb388d22a9cd8 (diff)
Don't create a feedback loop by auto-connecting a master route to itself.
git-svn-id: svn://localhost/ardour2/branches/3.0@7745 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/route.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc
index 533edc84fd..4c3881f4e0 100644
--- a/libs/ardour/route.cc
+++ b/libs/ardour/route.cc
@@ -2657,8 +2657,12 @@ Route::output_change_handler (IOChange change, void * /*src*/)
/* XXX resize all listeners to match _main_outs? */
- /* auto-connect newly-created outputs */
- if (Config->get_output_auto_connect()) {
+ /* Auto-connect newly-created outputs, unless we're auto-connecting to master
+ and we are master (as an auto-connect in this situation would cause a
+ feedback loop)
+ */
+ AutoConnectOption ac = Config->get_output_auto_connect ();
+ if (ac == AutoConnectPhysical || (ac == AutoConnectMaster && !is_master ())) {
ChanCount start = change.before;