diff options
author | Carl Hetherington <carl@carlh.net> | 2010-09-06 20:59:15 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2010-09-06 20:59:15 +0000 |
commit | e1106c39b86fdb4e1ddca0972fea308c5ed849cc (patch) | |
tree | 2c62a15a5052f921a469763245c2cd745e61dc20 /libs | |
parent | ea2648503b520e3da54263ce0bafb388d22a9cd8 (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.cc | 8 |
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; |