namespace ARDOUR {
+class MidiStateTracker;
class MidiModel;
template<typename T> class MidiRingBuffer;
* \param cnt Length of range to be read (in audio frames)
* \param stamp_offset Offset to add to event times written to dst
* \param negative_stamp_offset Offset to subtract from event times written to dst
+ * \param tracker an optional pointer to MidiStateTracker object, for note on/off tracking
*/
virtual nframes_t midi_read (MidiRingBuffer<nframes_t>& dst,
- sframes_t source_start,
- sframes_t start, nframes_t cnt,
- sframes_t stamp_offset, sframes_t negative_stamp_offset) const;
+ sframes_t source_start,
+ sframes_t start, nframes_t cnt,
+ sframes_t stamp_offset, sframes_t negative_stamp_offset, MidiStateTracker*) const;
virtual nframes_t midi_write (MidiRingBuffer<nframes_t>& src,
sframes_t source_start,
virtual void flush_midi() = 0;
virtual nframes_t read_unlocked (MidiRingBuffer<nframes_t>& dst,
- sframes_t position,
- sframes_t start, nframes_t cnt,
- sframes_t stamp_offset, sframes_t negative_stamp_offset) const = 0;
+ sframes_t position,
+ sframes_t start, nframes_t cnt,
+ sframes_t stamp_offset, sframes_t negative_stamp_offset,
+ MidiStateTracker* tracker) const = 0;
virtual nframes_t write_unlocked (MidiRingBuffer<nframes_t>& dst,
sframes_t position,