mackie: still respond to route groups visibility changes
authorPaul Davis <paul@linuxaudiosystems.com>
Tue, 19 Jan 2016 18:38:29 +0000 (13:38 -0500)
committerPaul Davis <paul@linuxaudiosystems.com>
Tue, 19 Jan 2016 18:38:29 +0000 (13:38 -0500)
libs/ardour/ardour/session.h
libs/ardour/session.cc
libs/ardour/session_state.cc
libs/surfaces/mackie/mackie_control_protocol.cc
libs/surfaces/mackie/mackie_control_protocol.h

index afc93a9f76de882ae2d5421ddae44104217f3adb..adadaa26f464827a76e82a9f2ad831d0bd7533fc 100644 (file)
@@ -349,7 +349,7 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
        /** Emitted when a property of one of our route groups changes.
         *  The parameter is the RouteGroup that has changed.
         */
-       PBD::Signal1<void, RouteGroup *> RouteGroupPropertyChanged;
+       PBD::Signal2<void, RouteGroup *, PBD::PropertyChange> RouteGroupPropertyChanged;
        /** Emitted when a route is added to one of our route groups.
         *  First parameter is the RouteGroup, second is the route.
         */
@@ -1560,7 +1560,7 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
 
        void route_added_to_route_group (RouteGroup *, boost::weak_ptr<Route>);
        void route_removed_from_route_group (RouteGroup *, boost::weak_ptr<Route>);
-       void route_group_property_changed (RouteGroup *);
+       void route_group_property_changed (RouteGroup *, PBD::PropertyChange);
 
        /* SOURCES */
 
index 3da7f6c071f302e085854fb079c8e54de21a1415..115f72033393d19907a877920ef2625310532b40 100644 (file)
@@ -5638,9 +5638,9 @@ Session::solo_control_mode_changed ()
 
 /** Called when a property of one of our route groups changes */
 void
-Session::route_group_property_changed (RouteGroup* rg)
+Session::route_group_property_changed (RouteGroup* rg, PropertyChange pc)
 {
-       RouteGroupPropertyChanged (rg); /* EMIT SIGNAL */
+       RouteGroupPropertyChanged (rg, pc); /* EMIT SIGNAL */
 }
 
 /** Called when a route is added to one of our route groups */
index 13d1413b193dc3adbfe671d690f8e9fcfed59470..9df6754ba8455ec6155f57b40224fbb4b684f175 100644 (file)
@@ -2501,7 +2501,7 @@ Session::add_route_group (RouteGroup* g)
 
        g->RouteAdded.connect_same_thread (*this, boost::bind (&Session::route_added_to_route_group, this, _1, _2));
        g->RouteRemoved.connect_same_thread (*this, boost::bind (&Session::route_removed_from_route_group, this, _1, _2));
-       g->PropertyChanged.connect_same_thread (*this, boost::bind (&Session::route_group_property_changed, this, g));
+       g->PropertyChanged.connect_same_thread (*this, boost::bind (&Session::route_group_property_changed, this, g, _1));
 
        set_dirty ();
 }
index 4256d9780a22a166bba92b29c559ac0b98eb6f65..e95b50b0115786fff504d862c6f238d9f0603a0f 100644 (file)
@@ -704,7 +704,7 @@ MackieControlProtocol::connect_session_signals()
        // receive rude solo changed
        session->SoloActive.connect(session_connections, MISSING_INVALIDATOR, boost::bind (&MackieControlProtocol::notify_solo_active_changed, this, _1), this);
        // need to know if group parameters change... might be hidden.
-       session->RouteGroupPropertyChanged.connect(session_connections, MISSING_INVALIDATOR, boost::bind (&MackieControlProtocol::notify_remote_id_changed, this), this);
+       session->RouteGroupPropertyChanged.connect(session_connections, MISSING_INVALIDATOR, boost::bind (&MackieControlProtocol::notify_group_property_changed, this, _2), this);
 
        // make sure remote id changed signals reach here
        // see also notify_route_added
@@ -1258,6 +1258,17 @@ MackieControlProtocol::notify_solo_active_changed (bool active)
        }
 }
 
+void
+MackieControlProtocol::notify_group_property_changed (PropertyChange pc)
+{
+       if (!pc.contains (Properties::hidden)) {
+               return;
+       }
+
+       /* re-pick routes to show, as if remote ID(s) had changed */
+       notify_remote_id_changed ();
+}
+
 void
 MackieControlProtocol::notify_remote_id_changed()
 {
index 55696f4a3c3a8469ab636f1e6951ac4ebc37dcdd..df758074be7e130bb345a812ef521944616ecafa 100644 (file)
@@ -208,6 +208,7 @@ class MackieControlProtocol
        void notify_route_added_or_removed ();
        void notify_route_added (ARDOUR::RouteList &);
        void notify_remote_id_changed();
+       void notify_group_property_changed (PBD::PropertyChange);
 
        void recalibrate_faders ();
        void toggle_backlight ();