X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fmidi_ring_buffer.cc;h=7e88f5ff45ca8a4aa919e908ebf2f0b40ef9c62d;hb=dd07428c48bb4df60b9d0c6c3cd524279ab4e524;hp=5bd3f947e27ad6ace2fe33769b93bb598791ea92;hpb=7bb9d048591ecfab2b650784f8b45843773bbd41;p=ardour.git diff --git a/libs/ardour/midi_ring_buffer.cc b/libs/ardour/midi_ring_buffer.cc index 5bd3f947e2..7e88f5ff45 100644 --- a/libs/ardour/midi_ring_buffer.cc +++ b/libs/ardour/midi_ring_buffer.cc @@ -165,7 +165,19 @@ MidiRingBuffer::skip_to(framepos_t start) ++count; - if (ev_size < 8) { + /* TODO investigate and think: + * + * Does it makes sense to keep track of notes + * that are skipped (because they're either too late + * (underrun) or never used (read-ahead, loop) ? + * + * skip_to() is called on the rinbuffer between + * disk and process. it seems wrong to track them + * (a potential synth never sees skipped notes, either) + * but there may be more to this. + */ + + if (ev_size >= 8) { this->increment_read_ptr (ev_size); } else { // we only track note on/off, 8 bytes are plenty. @@ -303,6 +315,13 @@ MidiRingBuffer::resolve_tracker (MidiBuffer& dst, framepos_t t) _tracker.resolve_notes (dst, t); } +template +void +MidiRingBuffer::resolve_tracker (Evoral::EventSink& dst, framepos_t t) +{ + _tracker.resolve_notes(dst, t); +} + template class MidiRingBuffer; } // namespace ARDOUR