Fix MIDI note number off by one error.
authorDavid Robillard <d@drobilla.net>
Sun, 20 Jan 2013 01:12:12 +0000 (01:12 +0000)
committerDavid Robillard <d@drobilla.net>
Sun, 20 Jan 2013 01:12:12 +0000 (01:12 +0000)
Bloody one-based indices...

git-svn-id: svn://localhost/ardour2/branches/3.0@13911 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/midi++2/midnam_patch.cc

index 490baec8064720b6465a9f7911c4378e34e9f969..83f701777ba9ba6d2b12def30cd0903daa0d0cfe 100644 (file)
@@ -141,7 +141,7 @@ XMLNode&
 Note::get_state (void)
 {
        XMLNode* node = new XMLNode("Note");
-       node->add_property("Number", _number);
+       node->add_property("Number", _number + 1);
        node->add_property("Name",   _name);
 
        return *node;
@@ -153,10 +153,11 @@ Note::set_state (const XMLTree&, const XMLNode& node)
        assert(node.name() == "Note");
 
        /* If the note number is junk, this will pull a number from the start, or
-          return zero if there isn't one.  Better error detection would be a good
-          idea, but the duplicate check in NoteNameList::set_state() will probably
-          catch really broken files anyway. */
-       _number = atoi(node.property("Number")->value().c_str());
+          return zero if there isn't one.  The decrement will make that zero
+          illegal since note numbers in the file are one-based.  Better error
+          detection would be a good idea, but the duplicate check in
+          NoteNameList::set_state() will probably catch most errors anyway. */
+       _number = atoi(node.property("Number")->value().c_str()) - 1;
        _name   = node.property("Name")->value();
 
        return 0;