13
0

OSC: Add increment fader.

This commit is contained in:
Len Ovens 2017-06-22 12:54:03 -07:00
parent 57e7531b1f
commit 7af5de2074
2 changed files with 44 additions and 0 deletions

View File

@ -966,6 +966,30 @@ OSC::catchall (const char *path, const char* types, lo_arg **argv, int argc, lo_
int ssid = atoi (&path[13]);
ret = route_set_gain_fader (ssid, argv[0]->f, msg);
}
else if (!strncmp (path, "/strip/db_delta", 15)) {
// in db delta
int ssid;
int ar_off = 0;
float delta;
if (strlen (path) > 15 && argc == 1) {
ssid = atoi (&path[16]);
} else if (argc == 2) {
if (types[0] == 'f') {
ssid = (int) argv[0]->f;
} else {
ssid = argv[0]->i;
}
ar_off = 1;
} else {
return -1;
}
if (types[ar_off] == 'f') {
delta = argv[ar_off]->f;
} else {
delta = (float) argv[ar_off]->i;
}
ret = strip_db_delta (ssid, delta, msg);
}
else if (!strncmp (path, "/strip/trimdB/", 14) && strlen (path) > 14) {
int ssid = atoi (&path[14]);
ret = route_set_trim_dB (ssid, argv[0]->f, msg);
@ -3302,6 +3326,25 @@ OSC::route_set_gain_fader (int ssid, float pos, lo_message msg)
return 0;
}
int
OSC::strip_db_delta (int ssid, float delta, lo_message msg)
{
if (!session) return -1;
boost::shared_ptr<Stripable> s = get_strip (ssid, get_address (msg));
if (s) {
float db = accurate_coefficient_to_dB (s->gain_control()->get_value()) + delta;
float abs;
if (db < -192) {
abs = 0;
} else {
abs = dB_to_coefficient (db);
}
s->gain_control()->set_value (abs, PBD::Controllable::NoGroup);
return 0;
}
return -1;
}
int
OSC::sel_fader (float val, lo_message msg)
{

View File

@ -567,6 +567,7 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI<OSCUIRequest>
int route_set_gain_abs (int rid, float level, lo_message msg);
int route_set_gain_dB (int rid, float dB, lo_message msg);
int route_set_gain_fader (int rid, float pos, lo_message msg);
int strip_db_delta (int ssid, float delta, lo_message msg);
int route_set_trim_abs (int rid, float level, lo_message msg);
int route_set_trim_dB (int rid, float dB, lo_message msg);
int route_set_pan_stereo_position (int rid, float left_right_fraction, lo_message msg);