add API to use a plugin provided bypass control port
[ardour.git] / libs / ardour / session_rtevents.cc
index 67249d48b9482d0f0751bf0f1c94512e578f2864..8dba60f0e5cbe0017d423d80c2bad63d96a29b09 100644 (file)
@@ -25,6 +25,7 @@
 #include "ardour/route.h"
 #include "ardour/session.h"
 #include "ardour/track.h"
+#include "ardour/vca_manager.h"
 
 #include "i18n.h"
 
@@ -37,6 +38,12 @@ void
 Session::set_controls (boost::shared_ptr<ControlList> cl, double val, Controllable::GroupControlDisposition gcd)
 {
        std::cerr << "Session::set_controls called on " << cl->size() << " controls, group = " << enum_2_string (gcd) << std::endl;
+
+       for (ControlList::iterator ci = cl->begin(); ci != cl->end(); ++ci) {
+               /* as of july 2017 this is a no-op for everything except record enable */
+               (*ci)->do_pre_realtime_queue_stuff (val);
+       }
+
        queue_event (get_rt_event (cl, val, gcd));
 }
 
@@ -71,6 +78,9 @@ Session::rt_clear_all_solo_state (boost::shared_ptr<RouteList> rl, bool /* yn */
                }
                (*i)->clear_all_solo_state();
        }
+
+       _vca_manager->clear_all_solo_state ();
+
        set_dirty();
 }