* completed MIDI::Name::MIDINameDocument and implemented its set_state-Method, added constructor

git-svn-id: svn://localhost/ardour2/branches/3.0@4295 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Hans Baier 2008-12-06 05:00:20 +00:00
parent c61283d35e
commit 72f55cd8b6
2 changed files with 21 additions and 1 deletions

View file

@ -185,14 +185,19 @@ public:
typedef std::list<MasterDeviceNames> MasterDeviceNamesList; typedef std::list<MasterDeviceNames> MasterDeviceNamesList;
MIDINameDocument() {}; MIDINameDocument() {};
MIDINameDocument(const string &filename) : _document(XMLTree(filename)) { set_state(*_document.root()); };
virtual ~MIDINameDocument() {}; virtual ~MIDINameDocument() {};
const string& author() const { return _author; }
void set_author(const string an_author) { _author = an_author; }
XMLNode& get_state (void); XMLNode& get_state (void);
int set_state (const XMLNode& a_node); int set_state (const XMLNode& a_node);
private: private:
string _author; string _author;
MasterDeviceNamesList _master_device_names_list; MasterDeviceNamesList _master_device_names_list;
XMLTree _document;
}; };
} }

View file

@ -272,6 +272,21 @@ MasterDeviceNames::get_state(void)
int int
MIDINameDocument::set_state(const XMLNode& a_node) MIDINameDocument::set_state(const XMLNode& a_node)
{ {
// Author
boost::shared_ptr<XMLSharedNodeList> author = a_node.find("//Author");
assert(author->size() == 1);
_author = author->front()->content();
// 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) {
MasterDeviceNames master_device_names;
master_device_names.set_state(*(*i));
_master_device_names_list.push_back(master_device_names);
}
return 0; return 0;
} }