class SMFSource : public MidiSource, public FileSource, public Evoral::SMF {
public:
/** Constructor for existing external-to-session files */
- SMFSource (Session& session, const Glib::ustring& path, bool embedded,
+ SMFSource (Session& session, const Glib::ustring& path,
Source::Flag flags = Source::Flag(0));
/** Constructor for existing in-session files */
static bool safe_midi_file_extension (const Glib::ustring& path);
private:
- nframes_t read_unlocked (MidiRingBuffer<nframes_t>& dst,
+ nframes_t read_unlocked (Evoral::EventSink<nframes_t>& dst,
sframes_t position,
sframes_t start,
nframes_t cnt,
double _last_ev_time_beats;
sframes_t _last_ev_time_frames;
+ /** end time (start + duration) of last call to read_unlocked */
mutable sframes_t _smf_last_read_end;
+ /** time (in SMF ticks, 1 tick per _ppqn) of the last event read by read_unlocked */
+ mutable sframes_t _smf_last_read_time;
};
}; /* namespace ARDOUR */