OSC: Add framework for /*/automation mode
authorLen Ovens <len@ovenwerks.net>
Mon, 8 May 2017 17:54:43 +0000 (10:54 -0700)
committerLen Ovens <len@ovenwerks.net>
Tue, 9 May 2017 14:55:32 +0000 (07:55 -0700)
libs/surfaces/osc/osc.cc
libs/surfaces/osc/osc.h

index c3d2babcff966b74312ab4ffbaf574bf35419281..93571bb837548cf18b7eaff955b5dc293db6286b 100644 (file)
@@ -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)
 {
index 6ba625ce0f9ac059716138bed74560d68e1fe377..da4dca3fbe8b5d9e59a2c5cf2db225fb40c56da9 100644 (file)
@@ -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);