diff options
Diffstat (limited to 'libs/ardour/midi_playlist.cc')
-rw-r--r-- | libs/ardour/midi_playlist.cc | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/libs/ardour/midi_playlist.cc b/libs/ardour/midi_playlist.cc index 36b6fce75f..63c3b49858 100644 --- a/libs/ardour/midi_playlist.cc +++ b/libs/ardour/midi_playlist.cc @@ -288,14 +288,27 @@ MidiPlaylist::read (Evoral::EventSink<framepos_t>& dst, framepos_t start, framec } void -MidiPlaylist::clear_note_trackers () +MidiPlaylist::reset_note_trackers () { Playlist::RegionWriteLock rl (this, false); for (NoteTrackers::iterator n = _note_trackers.begin(); n != _note_trackers.end(); ++n) { delete n->second; } - DEBUG_TRACE (DEBUG::MidiTrackers, string_compose ("%1 clears all note trackers\n", name())); + DEBUG_TRACE (DEBUG::MidiTrackers, string_compose ("%1 reset all note trackers\n", name())); + _note_trackers.clear (); +} + +void +MidiPlaylist::resolve_note_trackers (Evoral::EventSink<framepos_t>& dst, framepos_t time) +{ + Playlist::RegionWriteLock rl (this, false); + + for (NoteTrackers::iterator n = _note_trackers.begin(); n != _note_trackers.end(); ++n) { + n->second->resolve_notes(dst, time); + delete n->second; + } + DEBUG_TRACE (DEBUG::MidiTrackers, string_compose ("%1 resolve all note trackers\n", name())); _note_trackers.clear (); } |