summaryrefslogtreecommitdiff
path: root/libs/ardour/route_group.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-06-07 09:48:17 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2016-06-07 09:48:17 -0400
commit78ad42fd88791da359640329874e2abf2acbebc9 (patch)
tree4816f1ff3ef1944f278d079e787ade769c08c1be /libs/ardour/route_group.cc
parentaf9a9a9efd17452931525e3ddcf1d57bcbc7f4a7 (diff)
fix up logic that connects ControlGroups and RouteGroups
This makes deactivating a RouteGroup also stop the ControlGroups from having any effect
Diffstat (limited to 'libs/ardour/route_group.cc')
-rw-r--r--libs/ardour/route_group.cc21
1 files changed, 16 insertions, 5 deletions
diff --git a/libs/ardour/route_group.cc b/libs/ardour/route_group.cc
index 4288554565..ce6e4a12e2 100644
--- a/libs/ardour/route_group.cc
+++ b/libs/ardour/route_group.cc
@@ -395,6 +395,9 @@ RouteGroup::set_active (bool yn, void* /*src*/)
}
_active = yn;
+
+ push_to_groups ();
+
send_change (PropertyChange (Properties::active));
_session.set_dirty ();
}
@@ -539,11 +542,19 @@ RouteGroup::post_set (PBD::PropertyChange const &)
void
RouteGroup::push_to_groups ()
{
- _gain_group->set_active (_gain);
- _solo_group->set_active (_solo);
- _mute_group->set_active (_mute);
- _rec_enable_group->set_active (_recenable);
- _monitoring_group->set_active (_monitoring);
+ if (_active) {
+ _gain_group->set_active (is_gain());
+ _solo_group->set_active (is_solo());
+ _mute_group->set_active (is_mute());
+ _rec_enable_group->set_active (is_recenable());
+ _monitoring_group->set_active (is_monitoring());
+ } else {
+ _gain_group->set_active (false);
+ _solo_group->set_active (false);
+ _mute_group->set_active (false);
+ _rec_enable_group->set_active (false);
+ _monitoring_group->set_active (false);
+ }
}
void