fixes for various bugs including dangling ref to route in session, opening sessions...
[ardour.git] / libs / ardour / control_protocol_manager.cc
index c2fb18895322398a462e6e874dc812c46a1602cc..5c02936ba03acebb72e30c5599ff0092dd3d2519 100644 (file)
@@ -43,12 +43,16 @@ void
 ControlProtocolManager::set_session (Session& s)
 {
        _session = &s;
-       _session->going_away.connect (mem_fun (*this, &ControlProtocolManager::drop_session));
+       _session->GoingAway.connect (mem_fun (*this, &ControlProtocolManager::drop_session));
 
        for (list<ControlProtocolInfo*>::iterator i = control_protocol_info.begin(); i != control_protocol_info.end(); ++i) {
                if ((*i)->requested || (*i)->mandatory) {
                        instantiate (**i);
                        (*i)->requested = false;
+
+                       if ((*i)->state) {
+                               (*i)->protocol->set_state (*(*i)->state);
+                       }
                }
        }
 }
@@ -181,6 +185,7 @@ ControlProtocolManager::control_protocol_discover (string path)
                        cpi->protocol = 0;
                        cpi->requested = false;
                        cpi->mandatory = descriptor->mandatory;
+                       cpi->state = 0;
                        
                        control_protocol_info.push_back (cpi);