diff options
author | Len Ovens <len@ovenwerks.net> | 2018-02-17 07:11:20 -0800 |
---|---|---|
committer | Len Ovens <len@ovenwerks.net> | 2018-02-18 09:16:16 -0800 |
commit | 66fa0778abcb08026a9f0eabfecbe44ae5dbdd76 (patch) | |
tree | d042561d960a617a89bdda42c06cbb47052e6332 /libs | |
parent | 0b3026d388c13677c7ba6afbf2ef9770d6ad0dac (diff) |
OSC: Allow surface to change route comment.
Diffstat (limited to 'libs')
-rw-r--r-- | libs/surfaces/osc/osc.cc | 27 | ||||
-rw-r--r-- | libs/surfaces/osc/osc.h | 2 |
2 files changed, 29 insertions, 0 deletions
diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc index 784946f9d6..fe4b7c45ba 100644 --- a/libs/surfaces/osc/osc.cc +++ b/libs/surfaces/osc/osc.cc @@ -569,6 +569,7 @@ OSC::register_callbacks() 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/comment"), "s", sel_comment); 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); @@ -3726,6 +3727,31 @@ OSC::sel_rename (char *newname, lo_message msg) { } int +OSC::sel_comment (char *newcomment, 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) { + boost::shared_ptr<Route> rt = boost::dynamic_pointer_cast<Route> (s); + if (!rt) { + PBD::warning << "OSC: can not set comment on VCAs." << endmsg; + return -1; + } + rt->set_comment (newcomment, this); + } + + return 0; +} + +int OSC::strip_group (int ssid, char *group, lo_message msg) { if (!session) { return -1; @@ -3760,6 +3786,7 @@ OSC::strip_select_group (boost::shared_ptr<Stripable> s, char *group) if (s) { boost::shared_ptr<Route> rt = boost::dynamic_pointer_cast<Route> (s); if (!rt) { + PBD::warning << "OSC: VCAs can not be part of a group." << endmsg; return -1; } RouteGroup *rg = rt->route_group(); diff --git a/libs/surfaces/osc/osc.h b/libs/surfaces/osc/osc.h index 45daead1a8..57f0bc9e5a 100644 --- a/libs/surfaces/osc/osc.h +++ b/libs/surfaces/osc/osc.h @@ -495,6 +495,7 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI<OSCUIRequest> PATH_CALLBACK1_MSG(use_group,f); PATH_CALLBACK1_MSG_s(sel_group,s); PATH_CALLBACK1_MSG_s(sel_rename,s); + PATH_CALLBACK1_MSG_s(sel_comment,s); PATH_CALLBACK1_MSG(sel_recenable,i); PATH_CALLBACK1_MSG(sel_recsafe,i); PATH_CALLBACK1_MSG(sel_mute,i); @@ -718,6 +719,7 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI<OSCUIRequest> 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_comment (char *c, 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); |