summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/midi_playlist.h
diff options
context:
space:
mode:
authorDavid Robillard <drobilla@leibniz.local>2014-12-19 18:09:36 -0500
committerDavid Robillard <drobilla@leibniz.local>2014-12-20 01:13:25 -0500
commit5d8021bf44c066ad9b5ee4e8ab824267824be738 (patch)
treeb2ebd105b0057f23fb5d59e7504c2fbd8e026621 /libs/ardour/ardour/midi_playlist.h
parentdb92d62c95773d78282e752df7589cc6b8b721c3 (diff)
Maintain correct tracker state on MIDI overwrite.
This is a little hard-edged in that edits while rolling will prematurely chop off any playing notes, but at least the state of things actually reflects reality. More sophisticated solution hopefully to come...
Diffstat (limited to 'libs/ardour/ardour/midi_playlist.h')
-rw-r--r--libs/ardour/ardour/midi_playlist.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/libs/ardour/ardour/midi_playlist.h b/libs/ardour/ardour/midi_playlist.h
index 2603de45f7..5e334d5546 100644
--- a/libs/ardour/ardour/midi_playlist.h
+++ b/libs/ardour/ardour/midi_playlist.h
@@ -63,7 +63,15 @@ public:
std::set<Evoral::Parameter> contained_automation();
- void clear_note_trackers ();
+ /** Clear all note trackers. */
+ void reset_note_trackers ();
+
+ /** Resolve all pending notes and clear all note trackers.
+ *
+ * @param dst Sink to write note offs to.
+ * @param time Time stamp of all written note offs.
+ */
+ void resolve_note_trackers (Evoral::EventSink<framepos_t>& dst, framepos_t time);
protected: