From: Len Ovens Date: Sat, 13 May 2017 17:15:02 +0000 (-0700) Subject: OSC: make /*/automation more generic so other controls can be easily added X-Git-Tag: 5.9~10 X-Git-Url: https://main.carlh.net/gitweb/?a=commitdiff_plain;h=3e2004aa73b4807bd470b3a816b5343a5127d7a7;hp=f806799c1c3771d2f94b898ac5283de657aa4b81;p=ardour.git OSC: make /*/automation more generic so other controls can be easily added --- diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc index 9f079e602f..634fcc674e 100644 --- a/libs/surfaces/osc/osc.cc +++ b/libs/surfaces/osc/osc.cc @@ -2243,28 +2243,38 @@ OSC::set_automation (const char *path, size_t len, lo_arg **argv, int argc, lo_m return ret; } if (strp) { + boost::shared_ptr control = boost::shared_ptr(); if ((!strncmp (&path[ctr], "fader", 5)) || (!strncmp (&path[ctr], "gain", 4))) { if (strp->gain_control ()) { - switch (aut) { - case 0: - strp->gain_control()->set_automation_state (ARDOUR::Off); - ret = 0; - break; - case 1: - strp->gain_control()->set_automation_state (ARDOUR::Play); - ret = 0; - break; - case 2: - strp->gain_control()->set_automation_state (ARDOUR::Write); - ret = 0; - break; - case 3: - strp->gain_control()->set_automation_state (ARDOUR::Touch); - ret = 0; - break; - default: - break; - } + 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) { + case 0: + control->set_automation_state (ARDOUR::Off); + ret = 0; + break; + case 1: + control->set_automation_state (ARDOUR::Play); + ret = 0; + 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; } } }