+ // cerr << "MasterDeviceNames::set_state Manufacturer" << endl;
+ // Manufacturer
+ boost::shared_ptr<XMLSharedNodeList> manufacturer = a_node.find("//Manufacturer");
+ assert(manufacturer->size() == 1);
+ _manufacturer = manufacturer->front()->content();
+
+ // cerr << "MasterDeviceNames::set_state models" << endl;
+ // Models
+ boost::shared_ptr<XMLSharedNodeList> models = a_node.find("//Model");
+ assert(models->size() >= 1);
+ for (XMLSharedNodeList::iterator i = models->begin();
+ i != models->end();
+ ++i) {
+ const XMLNodeList& contents = (*i)->children();
+ assert(contents.size() == 1);
+ XMLNode * content = *(contents.begin());
+ assert(content->is_content());
+ _models.push_back(content->content());
+ }
+
+ // cerr << "MasterDeviceNames::set_state CustomDeviceModes" << endl;
+ // CustomDeviceModes
+ boost::shared_ptr<XMLSharedNodeList> custom_device_modes = a_node.find("//CustomDeviceMode");
+ for (XMLSharedNodeList::iterator i = custom_device_modes->begin();
+ i != custom_device_modes->end();
+ ++i) {
+ boost::shared_ptr<CustomDeviceMode> custom_device_mode(new CustomDeviceMode());
+ custom_device_mode->set_state(*(*i), version);
+
+ _custom_device_modes[custom_device_mode->name()] = custom_device_mode;
+ _custom_device_mode_names.push_back(custom_device_mode->name());
+ }
+
+ // cerr << "MasterDeviceNames::set_state ChannelNameSets" << endl;
+ // ChannelNameSets
+ boost::shared_ptr<XMLSharedNodeList> channel_name_sets = a_node.find("//ChannelNameSet");
+ for (XMLSharedNodeList::iterator i = channel_name_sets->begin();
+ i != channel_name_sets->end();
+ ++i) {
+ boost::shared_ptr<ChannelNameSet> channel_name_set(new ChannelNameSet());
+ // cerr << "MasterDeviceNames::set_state ChannelNameSet before set_state" << endl;
+ channel_name_set->set_state(*(*i), version);
+ _channel_name_sets[channel_name_set->name()] = channel_name_set;
+ }
+
+ // cerr << "MasterDeviceNames::set_state NoteNameLists" << endl;
+ // NoteNameLists
+ boost::shared_ptr<XMLSharedNodeList> note_name_lists = a_node.find("//NoteNameList");
+ for (XMLSharedNodeList::iterator i = note_name_lists->begin();
+ i != note_name_lists->end();
+ ++i) {
+ boost::shared_ptr<NoteNameList> note_name_list(new NoteNameList());
+ note_name_list->set_state(*(*i), version);
+ _note_name_lists.push_back(note_name_list);
+ }
+