summaryrefslogtreecommitdiff
path: root/libs/surfaces/osc
diff options
context:
space:
mode:
authorLen Ovens <len@ovenwerks.net>2018-02-16 22:54:16 -0800
committerLen Ovens <len@ovenwerks.net>2018-02-16 22:54:16 -0800
commita29d3c1b3137cb44227d82ee11e93a81b6150b1c (patch)
tree308f7eb619405acfe084d6b68c81db7911c262a0 /libs/surfaces/osc
parentdffecfa4c671fac830a3c5fb0e013c96bdc4f38b (diff)
OSC: Select should be able to rename as well.
Diffstat (limited to 'libs/surfaces/osc')
-rw-r--r--libs/surfaces/osc/osc.cc21
-rw-r--r--libs/surfaces/osc/osc.h2
2 files changed, 23 insertions, 0 deletions
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);
@@ -3705,6 +3706,26 @@ OSC::route_rename (int ssid, char *newname, lo_message msg) {
}
int
+OSC::sel_rename (char *newname, lo_message msg) {
+ if (!session) {
+ return -1;
+ }
+
+ OSCSurface *sur = get_surface(get_address (msg));
+ boost::shared_ptr<Stripable> 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) {
return -1;
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<OSCUIRequest>
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<OSCUIRequest>
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);