summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorLen Ovens <len@ovenwerks.net>2017-05-08 10:54:43 -0700
committerLen Ovens <len@ovenwerks.net>2017-05-09 07:55:32 -0700
commit9b4d58393dd0d698cd4280bb4a1a17ad2a4de98d (patch)
treeb463bbddc807e6360c104aa891c407e1cb4b213f /libs
parent37a4987dab2635adba2f96c2782bc030200ad3c1 (diff)
OSC: Add framework for /*/automation mode
Diffstat (limited to 'libs')
-rw-r--r--libs/surfaces/osc/osc.cc17
-rw-r--r--libs/surfaces/osc/osc.h2
2 files changed, 19 insertions, 0 deletions
diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc
index c3d2babcff..93571bb837 100644
--- a/libs/surfaces/osc/osc.cc
+++ b/libs/surfaces/osc/osc.cc
@@ -862,6 +862,11 @@ OSC::catchall (const char *path, const char* types, lo_arg **argv, int argc, lo_
len = strlen (path);
+ if (len >= 13 && !strcmp (&path[len-15], "/automation")) {
+ set_automation (path, len, argv, argc, msg);
+ ret = 0;
+
+ } else
if (len >= 17 && !strcmp (&path[len-15], "/#current_value")) {
current_value_query (path, len, argv, argc, msg);
ret = 0;
@@ -2179,6 +2184,18 @@ OSC::route_get_receives(lo_message msg) {
}
// strip calls
+
+int
+OSC::set_automation (const char *path, size_t len, lo_arg **argv, int argc, lo_message msg)
+{
+ if (!session) return -1;
+ //parse path first to find inlined parameter (or not)
+
+
+
+ return 0;
+}
+
int
OSC::route_mute (int ssid, int yn, lo_message msg)
{
diff --git a/libs/surfaces/osc/osc.h b/libs/surfaces/osc/osc.h
index 6ba625ce0f..da4dca3fbe 100644
--- a/libs/surfaces/osc/osc.h
+++ b/libs/surfaces/osc/osc.h
@@ -227,6 +227,8 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI<OSCUIRequest>
int catchall (const char *path, const char *types, lo_arg **argv, int argc, void *data);
static int _catchall (const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data);
+ int set_automation (const char *path, size_t len, lo_arg **argv, int argc, lo_message msg);
+
int route_get_sends (lo_message msg);
int route_get_receives(lo_message msg);
void routes_list (lo_message msg);