switch from std::auto_ptr<> (deprecated) to boost::scoped_ptr<>
[ardour.git] / libs / ardour / midi_automation_list_binder.cc
index 50ce3073883ab0c701e48e5fb25c39e6b486941f..986a6796cc80d89ab98fb658a50e7f0379f4b4b7 100644 (file)
@@ -29,40 +29,41 @@ MidiAutomationListBinder::MidiAutomationListBinder (boost::shared_ptr<MidiSource
        : _source (s)
        , _parameter (p)
 {
-       
+
 }
 
 MidiAutomationListBinder::MidiAutomationListBinder (XMLNode* node, Session::SourceMap const & sources)
        : _parameter (0, 0, 0)
 {
-       XMLProperty* source = node->property ("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<MidiSource> (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<MidiModel> model = _source->model ();
        assert (model);
-       
+
        boost::shared_ptr<AutomationControl> 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));
 }