From 97c23848d7d4126dc948caac47476317d6752e4d Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Thu, 11 Oct 2012 03:22:17 +0000 Subject: implement deleting of sysex events git-svn-id: svn://localhost/ardour2/branches/3.0@13238 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/midi_model.cc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'libs/ardour/midi_model.cc') diff --git a/libs/ardour/midi_model.cc b/libs/ardour/midi_model.cc index e86b229c71..4c6f6633d5 100644 --- a/libs/ardour/midi_model.cc +++ b/libs/ardour/midi_model.cc @@ -786,6 +786,10 @@ MidiModel::SysExDiffCommand::operator() () { MidiModel::WriteLock lock (_model->edit_lock ()); + for (list::iterator i = _removed.begin(); i != _removed.end(); ++i) { + _model->remove_sysex_unlocked (*i); + } + for (ChangeList::iterator i = _changes.begin(); i != _changes.end(); ++i) { switch (i->property) { case Time: @@ -803,6 +807,10 @@ MidiModel::SysExDiffCommand::undo () { MidiModel::WriteLock lock (_model->edit_lock ()); + for (list::iterator i = _removed.begin(); i != _removed.end(); ++i) { + _model->add_sysex_unlocked (*i); + } + for (ChangeList::iterator i = _changes.begin(); i != _changes.end(); ++i) { switch (i->property) { case Time: @@ -816,6 +824,12 @@ MidiModel::SysExDiffCommand::undo () _model->ContentsChanged(); /* EMIT SIGNAL */ } +void +MidiModel::SysExDiffCommand::remove (SysExPtr sysex) +{ + _removed.push_back(sysex); +} + XMLNode& MidiModel::SysExDiffCommand::marshal_change (const Change& change) { -- cgit v1.2.3