DummyBackend: fix midi event mux+sorting
[ardour.git] / libs / ardour / midi_model.cc
index 5c1f65d96b2703aaf15399944976ab1b9bf429dc..ef9544589dcda716a02ff261b2b62a708236c3c8 100644 (file)
@@ -1018,6 +1018,7 @@ MidiModel::PatchChangeDiffCommand::change_channel (PatchChangePtr patch, uint8_t
        c.patch = patch;
        c.old_channel = patch->channel ();
        c.new_channel = channel;
+       c.patch_id = patch->id();
 
        _changes.push_back (c);
 }
@@ -1030,6 +1031,7 @@ MidiModel::PatchChangeDiffCommand::change_program (PatchChangePtr patch, uint8_t
        c.patch = patch;
        c.old_program = patch->program ();
        c.new_program = program;
+       c.patch_id = patch->id();
 
        _changes.push_back (c);
 }
@@ -1250,7 +1252,7 @@ MidiModel::PatchChangePtr
 MidiModel::PatchChangeDiffCommand::unmarshal_patch_change (XMLNode* n)
 {
        XMLProperty* prop;
-       Evoral::event_id_t id;
+       Evoral::event_id_t id = 0;
        Evoral::MusicalTime time = 0;
        int channel = 0;
        int program = 0;
@@ -1282,6 +1284,7 @@ MidiModel::PatchChangeDiffCommand::unmarshal_patch_change (XMLNode* n)
        }
 
        PatchChangePtr p (new Evoral::PatchChange<TimeType> (time, channel, program, bank));
+       assert(id);
        p->set_id (id);
        return p;
 }