diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2010-05-04 13:29:38 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2010-05-04 13:29:38 +0000 |
commit | 823bad30497b67508ed4031232049ba2f9920941 (patch) | |
tree | 2a82ac03da2d2a0e871b1519cd771384c5c5b196 /libs/ardour/route.cc | |
parent | dda06229570980a61de8a9395c1539958cc30b0f (diff) |
when soloed by upstream (e.g. a track in a group solos-by-upstream the group bus), push the inverse solo change back down to everything that feeds us. this makes solo within a group work
git-svn-id: svn://localhost/ardour2/branches/3.0@7050 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/route.cc')
-rw-r--r-- | libs/ardour/route.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index 243d240b75..287e3c219b 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -617,6 +617,16 @@ Route::mod_solo_by_others_upstream (int32_t delta) _soloed_by_others_upstream += delta; } + /* push the inverse solo change to everything that feeds us. + */ + + for (FedBy::iterator i = _fed_by.begin(); i != _fed_by.end(); ++i) { + boost::shared_ptr<Route> sr = i->r.lock(); + if (sr) { + sr->mod_solo_by_others_downstream (-delta); + } + } + set_mute_master_solo (); solo_changed (false, this); } |