diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2009-11-20 21:43:19 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2009-11-20 21:43:19 +0000 |
commit | 78503905d774ced7354ef95bc638829d315f1311 (patch) | |
tree | 27325b3be67db977dffdfde7945878eff1873eba /libs | |
parent | 908b1c93014c3f30d883b25cbe50c166edfc2232 (diff) |
make sure that delivery processors in a soloed route keep working when the route is soloed ; fiddle with sensitivity of mixer strip output button when displaying sends
git-svn-id: svn://localhost/ardour2/branches/3.0@6139 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/delivery.cc | 1 | ||||
-rw-r--r-- | libs/ardour/route.cc | 19 |
2 files changed, 16 insertions, 4 deletions
diff --git a/libs/ardour/delivery.cc b/libs/ardour/delivery.cc index 3494be2cf5..113c434388 100644 --- a/libs/ardour/delivery.cc +++ b/libs/ardour/delivery.cc @@ -563,6 +563,7 @@ Delivery::target_gain () } else { desired_gain = _mute_master->mute_gain_at (mp); } + } return desired_gain; diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index 02890808b7..d6f740e33c 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -552,11 +552,22 @@ Route::mod_solo_level (int32_t delta) _solo_level += delta; } - /* tell main outs what the solo situation is - */ + { + /* tell all delivery processors what the solo situation is, so that they keep + delivering even though Session::soloing() is true and they were not + explicitly soloed. + */ + + Glib::RWLock::ReaderLock rm (_processor_lock); + for (ProcessorList::iterator i = _processors.begin(); i != _processors.end(); ++i) { + boost::shared_ptr<Delivery> d; - _main_outs->set_solo_level (_solo_level); - _main_outs->set_solo_isolated (_solo_isolated); + if ((d = boost::dynamic_pointer_cast<Delivery> (*i)) != 0) { + d->set_solo_level (_solo_level); + d->set_solo_isolated (_solo_isolated); + } + } + } } void |