OSC: make /*/automation more generic so other controls can be easily added

This commit is contained in:
Len Ovens 2017-05-13 10:15:02 -07:00
parent f806799c1c
commit 3e2004aa73

View file

@ -2243,28 +2243,38 @@ OSC::set_automation (const char *path, size_t len, lo_arg **argv, int argc, lo_m
return ret; return ret;
} }
if (strp) { if (strp) {
boost::shared_ptr<AutomationControl> control = boost::shared_ptr<AutomationControl>();
if ((!strncmp (&path[ctr], "fader", 5)) || (!strncmp (&path[ctr], "gain", 4))) { if ((!strncmp (&path[ctr], "fader", 5)) || (!strncmp (&path[ctr], "gain", 4))) {
if (strp->gain_control ()) { if (strp->gain_control ()) {
switch (aut) { control = strp->gain_control ();
case 0: } else {
strp->gain_control()->set_automation_state (ARDOUR::Off); PBD::warning << "No fader for this strip" << endmsg;
ret = 0; }
break; } else {
case 1: PBD::warning << "Automation not available for " << path << endmsg;
strp->gain_control()->set_automation_state (ARDOUR::Play); }
ret = 0;
break; if (control) {
case 2:
strp->gain_control()->set_automation_state (ARDOUR::Write); switch (aut) {
ret = 0; case 0:
break; control->set_automation_state (ARDOUR::Off);
case 3: ret = 0;
strp->gain_control()->set_automation_state (ARDOUR::Touch); break;
ret = 0; case 1:
break; control->set_automation_state (ARDOUR::Play);
default: ret = 0;
break; break;
} case 2:
control->set_automation_state (ARDOUR::Write);
ret = 0;
break;
case 3:
control->set_automation_state (ARDOUR::Touch);
ret = 0;
break;
default:
break;
} }
} }
} }