fix crash when copy'ing latent plugins
[ardour.git] / libs / ardour / route_group_member.cc
index 3caa7cd1d0e8fc1db39639769ae4ddc8d4506e46..280d193fba1d90dc11b3cff20b18c878529aa2ff 100644 (file)
@@ -18,6 +18,7 @@
 
 #include "ardour/libardour_visibility.h"
 #include "ardour/route_group_member.h"
+#include "ardour/route_group.h"
 
 using namespace ARDOUR;
 
@@ -34,3 +35,14 @@ RouteGroupMember::set_route_group (RouteGroup *rg)
        _route_group = rg;
        route_group_changed (); /* EMIT SIGNAL */
 }
+
+bool
+RouteGroupMember::use_group (PBD::Controllable::GroupControlDisposition gcd, bool (RouteGroup::*predicate)(void) const) const
+{
+       bool active_for_predicate = _route_group && (_route_group->*predicate)() && _route_group->is_active();
+
+       return ((gcd != PBD::Controllable::NoGroup) && (gcd != PBD::Controllable::ForGroup)) &&
+               _route_group && 
+               ((active_for_predicate && (gcd != PBD::Controllable::InverseGroup)) ||
+                (!active_for_predicate && (gcd == PBD::Controllable::InverseGroup)));
+}