diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2017-03-26 14:42:28 +0200 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2017-03-26 14:42:28 +0200 |
commit | 196bdf83947adfcea5497769f6d9092451d598dd (patch) | |
tree | 4f679bf3b40ae7c51e1443060336f0819b94bafd | |
parent | e965e5edcdd9fdc8a4c68b4d50656cd4e0c53f18 (diff) |
more fully disable gain adjustment sharing in a RouteGroup that is assigned to a VCA master
-rw-r--r-- | libs/ardour/route_group.cc | 24 |
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 |