summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2017-03-26 14:42:28 +0200
committerPaul Davis <paul@linuxaudiosystems.com>2017-03-26 14:42:28 +0200
commit196bdf83947adfcea5497769f6d9092451d598dd (patch)
tree4f679bf3b40ae7c51e1443060336f0819b94bafd /libs
parente965e5edcdd9fdc8a4c68b4d50656cd4e0c53f18 (diff)
more fully disable gain adjustment sharing in a RouteGroup that is assigned to a VCA master
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/route_group.cc24
1 files changed, 24 insertions, 0 deletions
diff --git a/libs/ardour/route_group.cc b/libs/ardour/route_group.cc
index 291806c8cb..d965f180e8 100644
--- a/libs/ardour/route_group.cc
+++ b/libs/ardour/route_group.cc
@@ -608,6 +608,7 @@ RouteGroup::push_to_groups ()
_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);
}
@@ -630,8 +631,19 @@ RouteGroup::assign_master (boost::shared_ptr<VCA> master)
(*r)->assign (master, false);
}
+ bool used_to_share_gain = false;
+
+ if (is_gain()) {
+ used_to_share_gain = true;
+ }
+
group_master = master;
_group_master_number = master->number();
+ _gain_group->set_active (false);
+
+ if (used_to_share_gain) {
+ send_change (PropertyChange (Properties::group_gain));
+ }
}
void
@@ -653,6 +665,18 @@ RouteGroup::unassign_master (boost::shared_ptr<VCA> master)
group_master.reset ();
_group_master_number = -1;
+
+ /* this is slightly tricky: is_gain() will return whether or not
+ the group is supposed to be sharing gain adjustment, and now that
+ we've reset _group_master_number to -1, it will reflect the user's
+ intentions correctly. Since there was a master before, and now there
+ is not, we are going to reactivate gain sharing ... and then tell
+ the world about it.
+ */
+ if (is_gain()) {
+ _gain_group->set_active (true);
+ send_change (PropertyChange (Properties::group_gain));
+ }
}
bool