X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fmidi_playlist_source.h;h=12c184d7b50c3c921184cbc817cac5aa625b77d6;hb=49159e9585b660c87e985f427563cabc23473971;hp=7a61f5aa02ddc5083d02bc6d128f5e55989153fe;hpb=23e7cf10191270d70357ccf0ed9294f020c7b7ab;p=ardour.git diff --git a/libs/ardour/ardour/midi_playlist_source.h b/libs/ardour/ardour/midi_playlist_source.h index 7a61f5aa02..12c184d7b5 100644 --- a/libs/ardour/ardour/midi_playlist_source.h +++ b/libs/ardour/ardour/midi_playlist_source.h @@ -45,10 +45,10 @@ public: XMLNode& get_state (); int set_state (const XMLNode&, int version); - void append_event_unlocked_beats(const Evoral::Event& ev); - void append_event_unlocked_frames(const Evoral::Event& ev, framepos_t source_start); - void load_model(bool lock=true, bool force_reload=false); - void destroy_model(); + void append_event_beats(const Glib::Threads::Mutex::Lock& lock, const Evoral::Event& ev); + void append_event_frames(const Glib::Threads::Mutex::Lock& lock, const Evoral::Event& ev, framepos_t source_start); + void load_model(const Glib::Threads::Mutex::Lock& lock, bool force_reload=false); + void destroy_model(const Glib::Threads::Mutex::Lock& lock); protected: friend class SourceFactory; @@ -58,15 +58,18 @@ protected: MidiPlaylistSource (Session&, const XMLNode&); - void flush_midi(); + void flush_midi(const Lock& lock); - framecnt_t read_unlocked (Evoral::EventSink& dst, + framecnt_t read_unlocked (const Lock& lock, + Evoral::EventSink& dst, framepos_t position, framepos_t start, framecnt_t cnt, - MidiStateTracker* tracker) const; + MidiStateTracker* tracker, + MidiChannelFilter* filter) const; - framecnt_t write_unlocked (MidiRingBuffer& dst, + framecnt_t write_unlocked (const Lock& lock, + MidiRingBuffer& dst, framepos_t position, framecnt_t cnt);