{
SessionHandlePtr::set_session (s);
- if (_session) {
-
- /* get selection info and set it before instantiating any
- * control protocols.
- */
-
- CoreSelection::StripableAutomationControls sac;
- _session->selection().get_stripables (sac);
-
- if (!sac.empty()) {
- StripableNotificationListPtr v (new StripableNotificationList);
- for (CoreSelection::StripableAutomationControls::iterator i = sac.begin(); i != sac.end(); ++i) {
- if ((*i).stripable) {
- v->push_back (boost::weak_ptr<Stripable> ((*i).stripable));
- }
- }
- if (!v->empty()) {
- StripableSelectionChanged (v); /* EMIT SIGNAL */
- }
- }
+ if (!_session) {
+ return;
+ }
+ {
Glib::Threads::RWLock::ReaderLock lm (protocols_lock);
for (list<ControlProtocolInfo*>::iterator i = control_protocol_info.begin(); i != control_protocol_info.end(); ++i) {
}
}
}
+
+ CoreSelection::StripableAutomationControls sac;
+ _session->selection().get_stripables (sac);
+
+ if (!sac.empty()) {
+ StripableNotificationListPtr v (new StripableNotificationList);
+ for (CoreSelection::StripableAutomationControls::iterator i = sac.begin(); i != sac.end(); ++i) {
+ if ((*i).stripable) {
+ v->push_back (boost::weak_ptr<Stripable> ((*i).stripable));
+ }
+ }
+ if (!v->empty()) {
+ StripableSelectionChanged (v); /* EMIT SIGNAL */
+ }
+ }
}
int