properly handle integer steps in plugin controls
[ardour.git] / libs / ardour / midi_ring_buffer.cc
index 5bd3f947e27ad6ace2fe33769b93bb598791ea92..7e88f5ff45ca8a4aa919e908ebf2f0b40ef9c62d 100644 (file)
@@ -165,7 +165,19 @@ MidiRingBuffer<T>::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<T>::resolve_tracker (MidiBuffer& dst, framepos_t t)
        _tracker.resolve_notes (dst, t);
 }
 
+template<typename T>
+void
+MidiRingBuffer<T>::resolve_tracker (Evoral::EventSink<framepos_t>& dst, framepos_t t)
+{
+       _tracker.resolve_notes(dst, t);
+}
+
 template class MidiRingBuffer<framepos_t>;
 
 }  // namespace ARDOUR