Fix Controllable::InverseGroup behavior.

use_group(), use_me() filters group behavior beforehand.
ControlGroup::set_group_value() lacks context to make the decision itself
and should always apply to the group (regardless of active state):
InverseGroup allows to override both: inactive predicate and inactive group.

This needs testing, particularly since  RouteGroupMember::use_group()
is no longer used and was superseded by RouteGroup::push_to_groups()
This commit is contained in:
Robin Gareus
2017-03-11 18:48:37 +01:00
parent d6d1074565
commit c29568f4c5

View File

@@ -171,10 +171,6 @@ ControlGroup::set_group_value (boost::shared_ptr<AutomationControl> control, dou
control->set_value (val, Controllable::ForGroup);
if (!_active) {
return;
}
/* now propagate across the group */
Glib::Threads::RWLock::ReaderLock lm (controls_lock);
@@ -256,12 +252,6 @@ GainControlGroup::get_max_factor (gain_t factor)
void
GainControlGroup::set_group_value (boost::shared_ptr<AutomationControl> control, double val)
{
if (!_active) {
/* set the primary control */
control->set_value (val, Controllable::ForGroup);
return;
}
Glib::Threads::RWLock::ReaderLock lm (controls_lock);
if (_mode & Relative) {