- virtual nframes_t read (Sample*, sframes_t /*pos*/, nframes_t /*cnt*/, int /*channel*/) const { return 0; }
- virtual sframes_t readable_length() const { return length(); }
-
- nframes_t read_at (MidiRingBuffer<nframes_t>& dst,
- sframes_t position,
- nframes_t dur,
- uint32_t chan_n = 0,
- NoteMode mode = Sustained) const;
-
- nframes_t master_read_at (MidiRingBuffer<nframes_t>& dst,
- sframes_t position,
- nframes_t dur,
- uint32_t chan_n = 0,
- NoteMode mode = Sustained) const;
-
- XMLNode& state (bool);
+ virtual framecnt_t read (Sample*, framepos_t /*pos*/, framecnt_t /*cnt*/, int /*channel*/) const { return 0; }
+ virtual framecnt_t readable_length() const { return length(); }
+
+ framecnt_t read_at (Evoral::EventSink<framepos_t>& dst,
+ framepos_t position,
+ framecnt_t dur,
+ Evoral::Range<framepos_t>* loop_range,
+ uint32_t chan_n = 0,
+ NoteMode mode = Sustained,
+ MidiStateTracker* tracker = 0,
+ MidiChannelFilter* filter = 0) const;
+
+ framecnt_t master_read_at (MidiRingBuffer<framepos_t>& dst,
+ framepos_t position,
+ framecnt_t dur,
+ Evoral::Range<framepos_t>* loop_range,
+ uint32_t chan_n = 0,
+ NoteMode mode = Sustained) const;
+
+ XMLNode& state ();