summaryrefslogtreecommitdiff
path: root/libs/surfaces/osc/osc_global_observer.cc
diff options
context:
space:
mode:
authorLen Ovens <len@ovenwerks.net>2016-07-13 09:56:35 -0700
committerLen Ovens <len@ovenwerks.net>2016-07-13 09:56:35 -0700
commitb77b3cbe224a17fdb7e00ed14d003dbd5dd571f8 (patch)
treeac5d409baf0fa9552757f861ee31a8b18ebc2d6f /libs/surfaces/osc/osc_global_observer.cc
parent0fdbbac99dfcbb23c1df1bdca89254af84954685 (diff)
OSC: Add global soloing indicator/cancel
Diffstat (limited to 'libs/surfaces/osc/osc_global_observer.cc')
-rw-r--r--libs/surfaces/osc/osc_global_observer.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/libs/surfaces/osc/osc_global_observer.cc b/libs/surfaces/osc/osc_global_observer.cc
index 68e18d5141..fef3a92619 100644
--- a/libs/surfaces/osc/osc_global_observer.cc
+++ b/libs/surfaces/osc/osc_global_observer.cc
@@ -115,6 +115,8 @@ OSCGlobalObserver::OSCGlobalObserver (Session& s, lo_address a, uint32_t gm, std
// session feedback
session->StateSaved.connect(session_connections, MISSING_INVALIDATOR, boost::bind (&OSCGlobalObserver::send_session_saved, this, _1), OSC::instance());
send_session_saved (session->snap_name());
+ session->SoloActive.connect(session_connections, MISSING_INVALIDATOR, boost::bind (&OSCGlobalObserver::solo_active, this, _1), OSC::instance());
+ solo_active (session->soloing() || session->listening());
/*
* Maybe (many) more
@@ -372,3 +374,11 @@ OSCGlobalObserver::send_session_saved (std::string name)
}
+void
+OSCGlobalObserver::solo_active (bool active)
+{
+ lo_message msg = lo_message_new ();
+ lo_message_add_float (msg, (float) active);
+ lo_send_message (addr, "/cancel_all_solos", msg);
+ lo_message_free (msg);
+}