From 196bdf83947adfcea5497769f6d9092451d598dd Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sun, 26 Mar 2017 14:42:28 +0200 Subject: more fully disable gain adjustment sharing in a RouteGroup that is assigned to a VCA master --- libs/ardour/route_group.cc | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'libs/ardour/route_group.cc') 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 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 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 -- cgit v1.2.3