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,23 +2243,34 @@ 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 ()) {
control = strp->gain_control ();
} else {
PBD::warning << "No fader for this strip" << endmsg;
}
} else {
PBD::warning << "Automation not available for " << path << endmsg;
}
if (control) {
switch (aut) { switch (aut) {
case 0: case 0:
strp->gain_control()->set_automation_state (ARDOUR::Off); control->set_automation_state (ARDOUR::Off);
ret = 0; ret = 0;
break; break;
case 1: case 1:
strp->gain_control()->set_automation_state (ARDOUR::Play); control->set_automation_state (ARDOUR::Play);
ret = 0; ret = 0;
break; break;
case 2: case 2:
strp->gain_control()->set_automation_state (ARDOUR::Write); control->set_automation_state (ARDOUR::Write);
ret = 0; ret = 0;
break; break;
case 3: case 3:
strp->gain_control()->set_automation_state (ARDOUR::Touch); control->set_automation_state (ARDOUR::Touch);
ret = 0; ret = 0;
break; break;
default: default:
@ -2267,7 +2278,6 @@ OSC::set_automation (const char *path, size_t len, lo_arg **argv, int argc, lo_m
} }
} }
} }
}
return ret; return ret;
} }