13
0

OSC: finish /set_surface group of commands.

This commit is contained in:
Len Ovens 2016-05-31 22:04:25 -07:00
parent e0908a4154
commit d60200c899
2 changed files with 49 additions and 1 deletions

View File

@ -355,6 +355,9 @@ OSC::register_callbacks()
REGISTER_CALLBACK (serv, "/set_surface", "iiii", set_surface);
REGISTER_CALLBACK (serv, "/set_surface/feedback", "i", set_surface_feedback);
REGISTER_CALLBACK (serv, "/set_surface/bank_size", "i", set_surface_bank_size);
REGISTER_CALLBACK (serv, "/set_surface/gainmode", "i", set_surface_gainmode);
REGISTER_CALLBACK (serv, "/set_surface/strip_types", "i", set_surface_strip_types);
REGISTER_CALLBACK (serv, "/strip/list", "", routes_list);
REGISTER_CALLBACK (serv, "/add_marker", "", add_marker);
REGISTER_CALLBACK (serv, "/add_marker", "f", add_marker);
@ -1049,16 +1052,55 @@ OSC::set_surface (uint32_t b_size, uint32_t strips, uint32_t fb, uint32_t gm, lo
return 0;
}
int
OSC::set_surface_bank_size (uint32_t bs, lo_message msg)
{
OSCSurface *s = get_surface(lo_message_get_source (msg));
s->bank_size = bs;
// set bank and strip feedback
set_bank(s->bank, msg);
return 0;
}
int
OSC::set_surface_strip_types (uint32_t st, lo_message msg)
{
OSCSurface *s = get_surface(lo_message_get_source (msg));
s->strip_types = st;
// set bank and strip feedback
set_bank(s->bank, msg);
return 0;
}
int
OSC::set_surface_feedback (uint32_t fb, lo_message msg)
{
OSCSurface *s = get_surface(lo_message_get_source (msg));
s->feedback = fb;
// set bank and strip feedback
set_bank(s->bank, msg);
// Set global/master feedback
global_feedback (s->feedback, msg, s->gainmode);
return 0;
}
int
OSC::set_surface_gainmode (uint32_t gm, lo_message msg)
{
OSCSurface *s = get_surface(lo_message_get_source (msg));
s->gainmode = gm;
// set bank and strip feedback
set_bank(s->bank, msg);
// Set global/master feedback
// global_feedback should include s->feedback in whole.
global_feedback (s->feedback, msg, s->gainmode);
return 0;
}

View File

@ -318,7 +318,10 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI<OSCUIRequest>
return 0; \
}
PATH_CALLBACK1_MSG(set_surface_bank_size,i);
PATH_CALLBACK1_MSG(set_surface_strip_types,i);
PATH_CALLBACK1_MSG(set_surface_feedback,i);
PATH_CALLBACK1_MSG(set_surface_gainmode,i);
#define PATH_CALLBACK2(name,arg1type,arg2type) \
static int _ ## name (const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data) { \
@ -412,7 +415,10 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI<OSCUIRequest>
int bank_up (lo_message msg);
int bank_down (lo_message msg);
int set_surface (uint32_t b_size, uint32_t strips, uint32_t fb, uint32_t gmode, lo_message msg);
int set_surface_bank_size (uint32_t bs, lo_message msg);
int set_surface_strip_types (uint32_t st, lo_message msg);
int set_surface_feedback (uint32_t fb, lo_message msg);
int set_surface_gainmode (uint32_t gm, lo_message msg);
int master_set_gain (float dB);
int master_set_fader (uint32_t position);