summaryrefslogtreecommitdiff
path: root/libs/surfaces/osc/osc_global_observer.cc
diff options
context:
space:
mode:
authorLen Ovens <len@ovenwerks.net>2018-02-06 08:47:12 -0800
committerLen Ovens <len@ovenwerks.net>2018-02-16 13:10:20 -0800
commit3ac47220a0ddd24a89ff6603934ac3b7b7613fe2 (patch)
tree2cfea8de1d3c189eabf011d3c3edb9d44c78381d /libs/surfaces/osc/osc_global_observer.cc
parentb9c9777b9a2be6fab826fd1236820bb67859d292 (diff)
OSC: Add /group/list so surface can get a list of groups
Diffstat (limited to 'libs/surfaces/osc/osc_global_observer.cc')
-rw-r--r--libs/surfaces/osc/osc_global_observer.cc18
1 files changed, 18 insertions, 0 deletions
diff --git a/libs/surfaces/osc/osc_global_observer.cc b/libs/surfaces/osc/osc_global_observer.cc
index e68858150f..2fe9820fbf 100644
--- a/libs/surfaces/osc/osc_global_observer.cc
+++ b/libs/surfaces/osc/osc_global_observer.cc
@@ -127,6 +127,11 @@ OSCGlobalObserver::OSCGlobalObserver (OSC& o, Session& s, ArdourSurface::OSC::OS
click_controllable->Changed.connect (strip_connections, MISSING_INVALIDATOR, boost::bind (&OSCGlobalObserver::send_change_message, this, X_("/click/level"), click_controllable), OSC::instance());
send_change_message ("/click/level", click_controllable);
+ session->route_group_added.connect (session_connections, MISSING_INVALIDATOR, boost::bind (&OSCGlobalObserver::group_changed, this, _1), OSC::instance());
+ session->route_group_removed.connect (session_connections, MISSING_INVALIDATOR, boost::bind (&OSCGlobalObserver::group_changed, this), OSC::instance());
+ session->route_groups_reordered.connect (session_connections, MISSING_INVALIDATOR, boost::bind (&OSCGlobalObserver::group_changed, this), OSC::instance());
+ _osc.send_group_list (addr);
+
extra_check ();
jog_mode (jogmode);
@@ -205,6 +210,7 @@ OSCGlobalObserver::clear_observer ()
_osc.float_message (X_("/toggle_punch_in"), 0, addr);
_osc.float_message (X_("/toggle_click"), 0, addr);
_osc.float_message (X_("/click/level"), 0, addr);
+ _osc.text_message (X_("/group/list"), " ", addr);
_osc.text_message (X_("/jog/mode/name"), " ", addr);
_osc.int_message (X_("/jog/mode"), 0, addr);
@@ -547,3 +553,15 @@ OSCGlobalObserver::jog_mode (uint32_t jogmode)
_osc.int_message (X_("/jog/mode"), jogmode, addr);
}
+void
+OSCGlobalObserver::group_changed (ARDOUR::RouteGroup *rg)
+{
+ _osc.send_group_list (addr);
+}
+
+void
+OSCGlobalObserver::group_changed ()
+{
+ _osc.send_group_list (addr);
+}
+