From a29d3c1b3137cb44227d82ee11e93a81b6150b1c Mon Sep 17 00:00:00 2001 From: Len Ovens Date: Fri, 16 Feb 2018 22:54:16 -0800 Subject: [PATCH] OSC: Select should be able to rename as well. --- libs/surfaces/osc/osc.cc | 21 +++++++++++++++++++++ libs/surfaces/osc/osc.h | 2 ++ 2 files changed, 23 insertions(+) diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc index 28923b149f..784946f9d6 100644 --- a/libs/surfaces/osc/osc.cc +++ b/libs/surfaces/osc/osc.cc @@ -568,6 +568,7 @@ OSC::register_callbacks() // Controls for the Selected strip REGISTER_CALLBACK (serv, X_("/select/recenable"), "i", sel_recenable); REGISTER_CALLBACK (serv, X_("/select/record_safe"), "i", sel_recsafe); + REGISTER_CALLBACK (serv, X_("/select/name"), "s", sel_rename); REGISTER_CALLBACK (serv, X_("/select/group"), "s", sel_group); REGISTER_CALLBACK (serv, X_("/select/mute"), "i", sel_mute); REGISTER_CALLBACK (serv, X_("/select/solo"), "i", sel_solo); @@ -3704,6 +3705,26 @@ OSC::route_rename (int ssid, char *newname, lo_message msg) { return 0; } +int +OSC::sel_rename (char *newname, lo_message msg) { + if (!session) { + return -1; + } + + OSCSurface *sur = get_surface(get_address (msg)); + boost::shared_ptr s; + if (sur->expand_enable) { + s = get_strip (sur->expand, get_address (msg)); + } else { + s = _select; + } + if (s) { + s->set_name(std::string(newname)); + } + + return 0; +} + int OSC::strip_group (int ssid, char *group, lo_message msg) { if (!session) { diff --git a/libs/surfaces/osc/osc.h b/libs/surfaces/osc/osc.h index ec75c5d920..45daead1a8 100644 --- a/libs/surfaces/osc/osc.h +++ b/libs/surfaces/osc/osc.h @@ -494,6 +494,7 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI PATH_CALLBACK1_MSG(bank_delta,f); PATH_CALLBACK1_MSG(use_group,f); PATH_CALLBACK1_MSG_s(sel_group,s); + PATH_CALLBACK1_MSG_s(sel_rename,s); PATH_CALLBACK1_MSG(sel_recenable,i); PATH_CALLBACK1_MSG(sel_recsafe,i); PATH_CALLBACK1_MSG(sel_mute,i); @@ -716,6 +717,7 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI int monitor_set_dim (uint32_t state); int monitor_set_mono (uint32_t state); int sel_group (char *g, lo_message msg); + int sel_rename (char *n, lo_message msg); int sel_recenable (uint32_t state, lo_message msg); int sel_recsafe (uint32_t state, lo_message msg); int sel_mute (uint32_t state, lo_message msg);