summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-11-20 21:43:19 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-11-20 21:43:19 +0000
commit78503905d774ced7354ef95bc638829d315f1311 (patch)
tree27325b3be67db977dffdfde7945878eff1873eba /libs
parent908b1c93014c3f30d883b25cbe50c166edfc2232 (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.cc1
-rw-r--r--libs/ardour/route.cc19
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