linker-agnostic version of recent commit to get ControlProtocol selection state set...
authorPaul Davis <paul@linuxaudiosystems.com>
Sat, 10 Jun 2017 15:53:21 +0000 (11:53 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Sat, 10 Jun 2017 15:53:37 +0000 (11:53 -0400)
libs/ardour/control_protocol_manager.cc

index b510bd5aa7da6220a36765ea74b7ce36c93fb6e6..7205b3e79e18368b429b8b62e814a729263ee56c 100644 (file)
@@ -96,17 +96,20 @@ ControlProtocolManager::set_session (Session* s)
                CoreSelection::StripableAutomationControls sac;
                _session->selection().get_stripables (sac);
 
-               for (CoreSelection::StripableAutomationControls::iterator i = sac.begin(); i != sac.end(); ++i) {
-                       if ((*i).stripable) {
-                               cerr << "First selected being set to " << (*i).stripable->name() << endl;
-                               ControlProtocol::set_first_selected_stripable ((*i).stripable);
-                               break;
+               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 */
                        }
                }
 
                Glib::Threads::RWLock::ReaderLock lm (protocols_lock);
 
-
                for (list<ControlProtocolInfo*>::iterator i = control_protocol_info.begin(); i != control_protocol_info.end(); ++i) {
                        if ((*i)->requested || (*i)->mandatory) {
                                (void) activate (**i);