+ // Author
+ boost::shared_ptr<XMLSharedNodeList> author = a_node.find("//Author");
+ assert(author->size() == 1);
+ _author = author->front()->content();
+
+ // cerr << "MIDINameDocument::set_state befor masterdevicenames" << endl;
+ // MasterDeviceNames
+ boost::shared_ptr<XMLSharedNodeList> master_device_names_list = a_node.find("//MasterDeviceNames");
+ for (XMLSharedNodeList::iterator i = master_device_names_list->begin();
+ i != master_device_names_list->end();
+ ++i) {
+ boost::shared_ptr<MasterDeviceNames> master_device_names(new MasterDeviceNames());
+ // cerr << "MIDINameDocument::set_state before masterdevicenames->set_state" << endl;
+ master_device_names->set_state(*(*i), version);
+ // cerr << "MIDINameDocument::set_state after masterdevicenames->set_state" << endl;
+
+ for (MasterDeviceNames::Models::const_iterator model = master_device_names->models().begin();
+ model != master_device_names->models().end();
+ ++model) {
+ // cerr << "MIDINameDocument::set_state inserting model " << *model << endl;
+ _master_device_names_list.insert(
+ std::pair<std::string, boost::shared_ptr<MasterDeviceNames> >
+ (*model, master_device_names));
+
+ _all_models.push_back(*model);
+ }
+ }
+