X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fmidi_automation_list_binder.cc;h=986a6796cc80d89ab98fb658a50e7f0379f4b4b7;hb=4250940ad83200e065b966d0646c75a48bb0f73d;hp=50ce3073883ab0c701e48e5fb25c39e6b486941f;hpb=451c5c4d062d096f637d2ed243f4e27757829f96;p=ardour.git diff --git a/libs/ardour/midi_automation_list_binder.cc b/libs/ardour/midi_automation_list_binder.cc index 50ce307388..986a6796cc 100644 --- a/libs/ardour/midi_automation_list_binder.cc +++ b/libs/ardour/midi_automation_list_binder.cc @@ -29,40 +29,41 @@ MidiAutomationListBinder::MidiAutomationListBinder (boost::shared_ptrproperty ("source-id"); - assert (source); - - XMLProperty* parameter = node->property ("parameter"); - assert (parameter); + std::string id_str; + std::string parameter_str; + if (!node->get_property ("source-id", id_str) || + !node->get_property ("parameter", parameter_str)) { + assert (false); + } - Session::SourceMap::const_iterator i = sources.find (PBD::ID (source->value())); + Session::SourceMap::const_iterator i = sources.find (PBD::ID (id_str)); assert (i != sources.end()); _source = boost::dynamic_pointer_cast (i->second); - _parameter = EventTypeMap::instance().new_parameter (parameter->value()); + _parameter = EventTypeMap::instance().from_symbol (parameter_str); } AutomationList* -MidiAutomationListBinder::get () +MidiAutomationListBinder::get () const { boost::shared_ptr model = _source->model (); assert (model); - + boost::shared_ptr control = model->automation_control (_parameter); assert (control); - + return control->alist().get(); } void MidiAutomationListBinder::add_state (XMLNode* node) { - node->add_property ("source-id", _source->id().to_s()); - node->add_property ("parameter", EventTypeMap::instance().to_symbol (_parameter)); + node->set_property ("source-id", _source->id().to_s()); + node->set_property ("parameter", EventTypeMap::instance().to_symbol (_parameter)); }