Fix up route group label updates.
authorCarl Hetherington <carl@carlh.net>
Mon, 5 Jul 2010 01:12:49 +0000 (01:12 +0000)
committerCarl Hetherington <carl@carlh.net>
Mon, 5 Jul 2010 01:12:49 +0000 (01:12 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@7367 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/ardour/ardour/route_group_member.h
libs/ardour/ardour/session.h
libs/ardour/session.cc
libs/ardour/session_state.cc

index 824fd52bd3c1dbf6d5c01a5409a1c471b9796947..e8ff3762922c96c355981340bdc75272db055af1 100644 (file)
@@ -33,6 +33,7 @@ class RouteGroupMember
 
        RouteGroup* route_group () const { return _route_group; }
 
+       /** Emitted when this member joins or leaves a route group */
        PBD::Signal0<void> route_group_changed;
 
   protected:
index 79bdd4d966cb5491dcf2a4c86d837cdef39e2d4b..4e2f116697e4f6fcbfd5a40a2af00446ab3657e1 100644 (file)
@@ -279,6 +279,7 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi
        PBD::Signal0<void> Located;
 
        PBD::Signal1<void,RouteList&> RouteAdded;
+       /** Emitted when anything about any of our route groups changes */
        PBD::Signal0<void> RouteGroupChanged;
 
        void queue_event (SessionEvent*);
index 675cd9acfe025a4e8865f196bc4936e34fd3df0d..4fdcb6f5f97060df5cc77da455131161f8051abc 100644 (file)
@@ -1902,7 +1902,6 @@ Session::add_routes (RouteList& new_routes, bool save)
                r->mute_changed.connect_same_thread (*this, boost::bind (&Session::route_mute_changed, this, _1));
                r->output()->changed.connect_same_thread (*this, boost::bind (&Session::set_worst_io_latencies_x, this, _1, _2));
                r->processors_changed.connect_same_thread (*this, boost::bind (&Session::route_processors_changed, this, _1));
-               r->route_group_changed.connect_same_thread (*this, boost::bind (&Session::route_group_changed, this));
 
                if (r->is_master()) {
                        _master_out = r;
@@ -3834,6 +3833,7 @@ Session::solo_control_mode_changed ()
         }
 }
 
+/** Called when anything about any of our route groups changes (membership, state etc.) */
 void
 Session::route_group_changed ()
 {
index e91e4bddd423f65a858f07315bf128267df6d4d2..6800aced5146f68ca81c13b2635653aed472a1a1 100644 (file)
@@ -2251,6 +2251,10 @@ Session::add_route_group (RouteGroup* g)
 {
        _route_groups.push_back (g);
        route_group_added (g); /* EMIT SIGNAL */
+
+       g->MembershipChanged.connect_same_thread (*this, boost::bind (&Session::route_group_changed, this));
+       g->PropertyChanged.connect_same_thread (*this, boost::bind (&Session::route_group_changed, this));
+       
        set_dirty ();
 }