diff options
author | Hans Baier <hansfbaier@googlemail.com> | 2008-11-23 19:42:09 +0000 |
---|---|---|
committer | Hans Baier <hansfbaier@googlemail.com> | 2008-11-23 19:42:09 +0000 |
commit | 94537a47a1c53fd97f3010c9cc17b49b441bb37a (patch) | |
tree | a478afad9957b1f651f84dea6281c24860654661 /libs/midi++2/midnam_patch.cc | |
parent | 2f07b77503f01e75970241e3aa4c9b6fc723a83f (diff) |
* Added support for ChannelNameSetAssignments (midnam_patch.(cc|h)
git-svn-id: svn://localhost/ardour2/branches/3.0@4238 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/midi++2/midnam_patch.cc')
-rw-r--r-- | libs/midi++2/midnam_patch.cc | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/libs/midi++2/midnam_patch.cc b/libs/midi++2/midnam_patch.cc index d08911966b..624701bcde 100644 --- a/libs/midi++2/midnam_patch.cc +++ b/libs/midi++2/midnam_patch.cc @@ -132,6 +132,53 @@ ChannelNameSet::set_state (const XMLNode& node) } int +CustomDeviceMode::set_state(const XMLNode& a_node) +{ + assert(a_node.name() == "CustomDeviceNode"); + boost::shared_ptr<XMLSharedNodeList> channel_name_set_assignments = + a_node.find("//ChannelNameSetAssign"); + for(XMLSharedNodeList::const_iterator i = channel_name_set_assignments->begin(); + i != channel_name_set_assignments->end(); + ++i) { + int channel = atoi((*i)->property("Channel")->value().c_str()); + string name_set = (*i)->property("NameSet")->value(); + assert( 1 <= channel && channel <= 16 ); + _channel_name_set_assignments[channel -1] = name_set; + } + return 0; +} + +XMLNode& +CustomDeviceMode::get_state(void) +{ + XMLNode* custom_device_mode = new XMLNode("CustomDeviceMode"); + custom_device_mode->add_property("Name", _name); + XMLNode* channel_name_set_assignments = + custom_device_mode->add_child("ChannelNameSetAssignments"); + for (int i = 0; i < 15 && !_channel_name_set_assignments[i].empty(); i++) { + XMLNode* channel_name_set_assign = + channel_name_set_assignments->add_child("ChannelNameSetAssign"); + channel_name_set_assign->add_property("Channel", i + 1); + channel_name_set_assign->add_property("NameSet", _channel_name_set_assignments[i]); + } + + return *custom_device_mode; +} + +int +MasterDeviceNames::set_state(const XMLNode& a_node) +{ + return 0; +} + +XMLNode& +MasterDeviceNames::get_state(void) +{ + static XMLNode nothing("<nothing>"); + return nothing; +} + +int MIDINameDocument::set_state(const XMLNode& a_node) { return 0; |