summaryrefslogtreecommitdiff
path: root/libs/surfaces/osc/osc.cc
diff options
context:
space:
mode:
authorLen Ovens <len@ovenwerks.net>2017-11-12 13:52:18 -0800
committerLen Ovens <len@ovenwerks.net>2017-11-13 17:19:09 -0800
commit2d85eceb0e4d664fee508e50b7f0563323db4591 (patch)
treea51117304be5d2fde4506fe4c3cbb247a432e4c8 /libs/surfaces/osc/osc.cc
parent1a5887865c6e9811faf87aadcfea1336e1eb9006 (diff)
OSC: cue buttons can accept float or int
Diffstat (limited to 'libs/surfaces/osc/osc.cc')
-rw-r--r--libs/surfaces/osc/osc.cc24
1 files changed, 13 insertions, 11 deletions
diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc
index a7af9c1b10..9bb4b275f2 100644
--- a/libs/surfaces/osc/osc.cc
+++ b/libs/surfaces/osc/osc.cc
@@ -5291,17 +5291,19 @@ OSC::cue_parse (const char *path, const char* types, lo_arg **argv, int argc, lo
OSCSurface *s = get_surface(get_address (msg), true);
s->bank_size = 0;
float value = 0;
+ if (argc == 1) {
+ if (types[0] == 'f') {
+ value = argv[0]->f;
+ } else if (types[0] == 'i') {
+ value = (float) argv[0]->i;
+ }
+ }
int ret = 1; /* unhandled */
if (!strncmp (path, "/cue/aux", 8)) {
// set our Aux bus
if (argc) {
- if (types[0] == 'f') {
- value = argv[0]->f;
- } else if (types[0] == 'i') {
- value = (float) argv[0]->i;
- }
if (value) {
- ret = cue_set ((uint32_t) argv[0]->f, msg);
+ ret = cue_set ((uint32_t) value, msg);
} else {
ret = 0;
}
@@ -5334,23 +5336,23 @@ OSC::cue_parse (const char *path, const char* types, lo_arg **argv, int argc, lo
else if (!strncmp (path, "/cue/send/fader/", 16) && strlen (path) > 16) {
if (argc == 1) {
int id = atoi (&path[16]);
- ret = cue_send_fader (id, argv[0]->f, msg);
+ ret = cue_send_fader (id, value, msg);
}
}
else if (!strncmp (path, "/cue/send/enable/", 17) && strlen (path) > 17) {
if (argc == 1) {
int id = atoi (&path[17]);
- ret = cue_send_enable (id, argv[0]->f, msg);
+ ret = cue_send_enable (id, value, msg);
}
}
else if (!strncmp (path, "/cue/fader", 10)) {
if (argc == 1) {
- ret = cue_aux_fader (argv[0]->f, msg);
+ ret = cue_aux_fader (value, msg);
}
}
else if (!strncmp (path, "/cue/mute", 9)) {
if (argc == 1) {
- ret = cue_aux_mute (argv[0]->f, msg);
+ ret = cue_aux_mute (value, msg);
}
}
@@ -5396,7 +5398,7 @@ OSC::_cue_set (uint32_t aux, lo_address addr)
// make a list of stripables with sends that go to this bus
s->sends = cue_get_sorted_stripables(stp, aux, addr);
if (s->cue_obs) {
- s->cue_obs->refresh_strip (stp, s->sends, false);
+ s->cue_obs->refresh_strip (stp, s->sends, true);
} else {
// start cue observer
OSCCueObserver* co = new OSCCueObserver (*this, s);