Fix some mangled whitespace (noop).
[ardour.git] / libs / ardour / midi_model.cc
index b1dbb759d57c61389cbdff407787d2757f14a423..18378f53866d26a3b2964ae81ab71e3ec242797b 100644 (file)
@@ -179,6 +179,8 @@ MidiModel::NoteDiffCommand::get_value (const NotePtr note, Property prop)
        case Length:
                return Variant(note->length());
        }
+
+       return Variant();
 }
 
 Variant::Type
@@ -193,6 +195,8 @@ MidiModel::NoteDiffCommand::value_type(Property prop)
        case Length:
                return Variant::BEATS;
        }
+
+       return Variant::NOTHING;
 }
 
 void
@@ -578,8 +582,16 @@ MidiModel::NoteDiffCommand::marshal_change (const NoteChange& change)
        }
 
        ostringstream id_str;
-       id_str << change.note->id();
-       xml_change->add_property ("id", id_str.str());
+       if (change.note) {
+               id_str << change.note->id();
+               xml_change->add_property ("id", id_str.str());
+       } else if (change.note_id) {
+               warning << _("Change has no note, using note ID") << endmsg;
+               id_str << change.note_id;
+               xml_change->add_property ("id", id_str.str());
+       } else {
+               error << _("Change has no note or note ID") << endmsg;
+       }
 
        return *xml_change;
 }
@@ -589,6 +601,7 @@ MidiModel::NoteDiffCommand::unmarshal_change (XMLNode *xml_change)
 {
        XMLProperty* prop;
        NoteChange change;
+       change.note_id = 0;
 
        if ((prop = xml_change->property("property")) != 0) {
                change.property = (Property) string_2_enum (prop->value(), change.property);