From 2085cddab3b1c8155b63c3c48304fffaa72c4e6c Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sat, 6 Mar 2010 19:47:34 +0000 Subject: the last (?) piece of the internal send/listen/monitor/control outs track/bus architecture puzzle: a send from the post-fader master bus to the control/listen/monitor bus inputs that is silent when something is soloed, but the rest of the time delivers the main mix to the control/listen/monitor bus. Tweaks to follow, surely ... git-svn-id: svn://localhost/ardour2/branches/3.0@6740 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/route.cc | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'libs/ardour/route.cc') diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index aef23d4894..4a80197dc6 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -2361,7 +2361,20 @@ Route::listen_via (boost::shared_ptr route, Placement placement, bool /*a boost::shared_ptr listener; try { - listener.reset (new InternalSend (_session, _mute_master, route, (aux ? Delivery::Aux : Delivery::Listen))); + + if (is_master()) { + + if (route == _session.control_out()) { + listener.reset (new InternalSend (_session, _mute_master, route, (aux ? Delivery::Aux : Delivery::MainListen))); + } else { + listener.reset (new InternalSend (_session, _mute_master, route, (aux ? Delivery::Aux : Delivery::Listen))); + } + + } else { + listener.reset (new InternalSend (_session, _mute_master, route, (aux ? Delivery::Aux : Delivery::Listen))); + if (route == _session.control_out()) { + } + } } catch (failed_constructor& err) { return -1; @@ -2369,8 +2382,11 @@ Route::listen_via (boost::shared_ptr route, Placement placement, bool /*a if (route == _session.control_out()) { _control_outs = listener; + /* send to control/listen/monitor bus is active by default */ + listener->activate (); } + add_processor (listener, placement); return 0; -- cgit v1.2.3