summaryrefslogtreecommitdiff
path: root/libs/midi++2/midnam_patch.cc
diff options
context:
space:
mode:
authorHans Baier <hansfbaier@googlemail.com>2008-11-23 19:42:09 +0000
committerHans Baier <hansfbaier@googlemail.com>2008-11-23 19:42:09 +0000
commit94537a47a1c53fd97f3010c9cc17b49b441bb37a (patch)
treea478afad9957b1f651f84dea6281c24860654661 /libs/midi++2/midnam_patch.cc
parent2f07b77503f01e75970241e3aa4c9b6fc723a83f (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.cc47
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;