rename Controllable::WholeGroup => InverseGroup to reflect real intent.
authorPaul Davis <paul@linuxaudiosystems.com>
Thu, 21 Jan 2016 17:04:20 +0000 (12:04 -0500)
committerPaul Davis <paul@linuxaudiosystems.com>
Fri, 22 Jan 2016 16:58:31 +0000 (11:58 -0500)
Add logic to RouteGroupMember::use_group() to implement the real intent of InverseGroup

gtk2_ardour/route_ui.cc
libs/ardour/route_group_member.cc
libs/ardour/session.cc
libs/pbd/enums.cc
libs/pbd/pbd/controllable.h

index ddba45b73f3359ac7511807f1c19b5ca59b64509..a1a65750d16a082147692c7c858de46c543ab6d4 100644 (file)
@@ -426,7 +426,7 @@ RouteUI::mute_press (GdkEventButton* ev)
                                        }
 
                                        DisplaySuspender ds;
-                                       _session->set_mute (rl, !_route->muted(), Session::rt_cleanup, Controllable::WholeGroup);
+                                       _session->set_mute (rl, !_route->muted(), Session::rt_cleanup, Controllable::InverseGroup);
                                }
 
                        } else {
@@ -620,9 +620,9 @@ RouteUI::solo_press(GdkEventButton* ev)
 
                                        DisplaySuspender ds;
                                        if (Config->get_solo_control_is_listen_control()) {
-                                               _session->set_listen (rl, !_route->listening_via_monitor(),  Session::rt_cleanup, Controllable::WholeGroup);
+                                               _session->set_listen (rl, !_route->listening_via_monitor(),  Session::rt_cleanup, Controllable::InverseGroup);
                                        } else {
-                                               _session->set_solo (rl, !_route->self_soloed(),  Session::rt_cleanup, Controllable::WholeGroup);
+                                               _session->set_solo (rl, !_route->self_soloed(),  Session::rt_cleanup, Controllable::InverseGroup);
                                        }
                                }
 
@@ -735,7 +735,7 @@ RouteUI::rec_enable_press(GdkEventButton* ev)
                                }
 
                                DisplaySuspender ds;
-                               _session->set_record_enabled (rl, !_route->record_enabled(), Session::rt_cleanup, Controllable::WholeGroup);
+                               _session->set_record_enabled (rl, !_route->record_enabled(), Session::rt_cleanup, Controllable::InverseGroup);
                        }
 
                } else if (Keyboard::is_context_menu_event (ev)) {
index 6ab2ade21e52cb712176dc87dc28b635bd111937..d0701f57da3bfbb3298f7abe3afbf1bed95f7b89 100644 (file)
@@ -40,7 +40,8 @@ bool
 RouteGroupMember::use_group (PBD::Controllable::GroupControlDisposition gcd, bool (RouteGroup::*predicate)(void) const) const
 {
        return (gcd != PBD::Controllable::NoGroup) &&
-               (_route_group &&
-                ((gcd == PBD::Controllable::WholeGroup) ||
-                 (_route_group->is_active() && (_route_group->*predicate)())));
+               _route_group &&
+               (_route_group->*predicate)() &&
+               (((_route_group->is_active()) && (gcd != PBD::Controllable::InverseGroup)) ||
+                ((!_route_group->is_active()) && (gcd == PBD::Controllable::InverseGroup)));
 }
index 70a62e5b751ae9e25cd913a2b8d9ba38262bfd74..6c25270421f63dfcc53e947e73612fb30bf40f32 100644 (file)
@@ -3673,7 +3673,7 @@ Session::route_solo_changed (bool self_solo_change, Controllable::GroupControlDi
         * The first argument to the signal that this method is connected to is the
         * GroupControlDisposition value that was used to change solo.
         *
-        * If the solo change was done with group semantics (either WholeGroup
+        * If the solo change was done with group semantics (either InverseGroup
         * (force the entire group to change even if the group shared solo is
         * disabled) or UseGroup (use the group, which may or may not have the
         * shared solo property enabled)) then as we propagate the change to
index 5e68824bac08fae8a2839e9c90cd36b38e69bbab..e8bb80742d68643158bbff06a82cba5960be02b2 100644 (file)
@@ -41,7 +41,7 @@ setup_libpbd_enums ()
        REGISTER_CLASS_ENUM (Controllable, GainLike);
        REGISTER (controllable_flags);
 
-       REGISTER_CLASS_ENUM (Controllable, WholeGroup);
+       REGISTER_CLASS_ENUM (Controllable, InverseGroup);
        REGISTER_CLASS_ENUM (Controllable, UseGroup);
        REGISTER_CLASS_ENUM (Controllable, NoGroup);
        REGISTER (controllable_group_disposition);
index 727153a2770fb4e3a51e0e9495769e7de7f47141..51c9c64be1be2dcee881d2f2b35167713d37342a 100644 (file)
@@ -82,7 +82,7 @@ class LIBPBD_API Controllable : public PBD::StatefulDestructible {
         */
 
        enum GroupControlDisposition {
-               WholeGroup,  /* set all controls in the same "group" as this one */
+               InverseGroup,  /* set all controls in the same "group" as this one */
                NoGroup,     /* set only this control */
                UseGroup     /* use group settings to decide which group controls are altered */
        };