diff options
author | Len Ovens <len@ovenwerks.net> | 2016-07-13 09:56:35 -0700 |
---|---|---|
committer | Len Ovens <len@ovenwerks.net> | 2016-07-13 09:56:35 -0700 |
commit | b77b3cbe224a17fdb7e00ed14d003dbd5dd571f8 (patch) | |
tree | ac5d409baf0fa9552757f861ee31a8b18ebc2d6f /libs/surfaces/osc/osc_global_observer.cc | |
parent | 0fdbbac99dfcbb23c1df1bdca89254af84954685 (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.cc | 10 |
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); +} |