summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorLen Ovens <len@ovenwerks.net>2017-10-24 20:34:40 -0700
committerLen Ovens <len@ovenwerks.net>2017-10-24 20:34:40 -0700
commite28a08065116cea2cf846724837ae7bc4cfcf3dd (patch)
tree4a26f0bbdda5385e5347a2d65172f300133d8148 /libs
parentda4454751d270f0c89e60c2df0f0b574794bdfc8 (diff)
OSC: fix refresh surface
Diffstat (limited to 'libs')
-rw-r--r--libs/surfaces/osc/osc.cc21
1 files changed, 8 insertions, 13 deletions
diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc
index cd07f78b88..2bfce8ddb1 100644
--- a/libs/surfaces/osc/osc.cc
+++ b/libs/surfaces/osc/osc.cc
@@ -1241,7 +1241,6 @@ OSC::routes_list (lo_message msg)
// send feedback for newly created control surface
strip_feedback (sur, true);
global_feedback (sur);
- // need to add select start
_strip_select (0, get_address (msg));
}
@@ -1270,10 +1269,16 @@ int
OSC::refresh_surface (lo_message msg)
{
OSCSurface *s = get_surface(get_address (msg), true);
+ uint32_t bs = s->bank_size;
+ uint32_t st = (uint32_t) s->strip_types.to_ulong();
+ uint32_t fb = (uint32_t) s->feedback.to_ulong();
+ uint32_t gm = (uint32_t) s->gainmode;
+ uint32_t sp = s->send_page_size;
+ uint32_t pp = s->plug_page_size;
+
surface_destroy (s);
// restart all observers
- set_surface (s->bank_size, (uint32_t) s->strip_types.to_ulong(), (uint32_t) s->feedback.to_ulong(), \
- (uint32_t) s->gainmode, (uint32_t) s->send_page_size, (uint32_t) s->plug_page_size, msg);
+ set_surface (bs, st, fb, gm, sp, pp, msg);
return 0;
}
@@ -1546,10 +1551,7 @@ OSC::set_surface_feedback (uint32_t fb, lo_message msg)
OSCSurface *s = get_surface(get_address (msg), true);
s->feedback = fb;
- // set strip feedback
strip_feedback (s, false);
-
- // Set global/master feedback
global_feedback (s);
_strip_select (0, get_address (msg));
return 0;
@@ -1564,10 +1566,7 @@ OSC::set_surface_gainmode (uint32_t gm, lo_message msg)
OSCSurface *s = get_surface(get_address (msg), true);
s->gainmode = gm;
- // set strip feedback
strip_feedback (s, false);
-
- // Set global/master feedback
global_feedback (s);
_strip_select (0, get_address (msg));
return 0;
@@ -1639,11 +1638,7 @@ OSC::get_surface (lo_address addr , bool quiet)
}
if (!quiet) {
- // set bank and strip feedback
-
strip_feedback (&s, true);
-
- // Set global/master feedback
global_feedback (&s);
_strip_select (0, addr);
}