Fix long-standing spelling bug.
[ardour.git] / libs / ardour / ardour / midi_playlist_source.h
index 85f7a960ad1642f6bbf671e7b56a46c6e3ca7d37..12c184d7b50c3c921184cbc817cac5aa625b77d6 100644 (file)
@@ -32,49 +32,52 @@ namespace ARDOUR {
 
 class MidiPlaylist;
 
-class MidiPlaylistSource : public MidiSource, public PlaylistSource {
-  public:
-    virtual ~MidiPlaylistSource ();
-
-    bool empty() const;
-    framecnt_t length (framepos_t) const;
-
-    framecnt_t read_unlocked (Sample *dst, framepos_t start, framecnt_t cnt) const;
-    framecnt_t write_unlocked (Sample *src, framecnt_t cnt);
-    
-    XMLNode& get_state ();
-    int set_state (const XMLNode&, int version);
-
-    void append_event_unlocked_beats(const Evoral::Event<Evoral::MusicalTime>& ev);
-    void append_event_unlocked_frames(const Evoral::Event<framepos_t>& ev, framepos_t source_start);
-    void load_model(bool lock=true, bool force_reload=false);
-    void destroy_model();
-
-    static void ensure_buffers_for_level (uint32_t);
-
-  protected:
-    friend class SourceFactory;
-
-    MidiPlaylistSource (Session&, const PBD::ID& orig, const std::string& name, boost::shared_ptr<MidiPlaylist>, uint32_t chn,
-                       frameoffset_t begin, framecnt_t len, Source::Flag flags);
-    MidiPlaylistSource (Session&, const XMLNode&);
-    
-    
-    void flush_midi();
-
-    framepos_t read_unlocked (Evoral::EventSink<framepos_t>& dst,
-                                     framepos_t position,
-                                     framepos_t start, framecnt_t cnt,
-                                     MidiStateTracker* tracker) const;
-    
-    framepos_t write_unlocked (MidiRingBuffer<framepos_t>& dst,
-                                          framepos_t position,
-                                          framecnt_t cnt);
-  private:
-    int set_state (const XMLNode&, int version, bool with_descendants);
-    framecnt_t _length;
+class LIBARDOUR_API MidiPlaylistSource : public MidiSource, public PlaylistSource {
+public:
+       virtual ~MidiPlaylistSource ();
+
+       bool empty() const;
+       framecnt_t length (framepos_t) const;
+
+       framecnt_t read_unlocked (Sample *dst, framepos_t start, framecnt_t cnt) const;
+       framecnt_t write_unlocked (Sample *src, framecnt_t cnt);
+
+       XMLNode& get_state ();
+       int set_state (const XMLNode&, int version);
+
+       void append_event_beats(const Glib::Threads::Mutex::Lock& lock, const Evoral::Event<Evoral::Beats>& ev);
+       void append_event_frames(const Glib::Threads::Mutex::Lock& lock, const Evoral::Event<framepos_t>& 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;
+
+       MidiPlaylistSource (Session&, const PBD::ID& orig, const std::string& name, boost::shared_ptr<MidiPlaylist>, uint32_t chn,
+                           frameoffset_t begin, framecnt_t len, Source::Flag flags);
+       MidiPlaylistSource (Session&, const XMLNode&);
+
+
+       void flush_midi(const Lock& lock);
+
+       framecnt_t read_unlocked (const Lock&                    lock,
+                                 Evoral::EventSink<framepos_t>& dst,
+                                 framepos_t                     position,
+                                 framepos_t                     start,
+                                 framecnt_t                     cnt,
+                                 MidiStateTracker*              tracker,
+                                 MidiChannelFilter*             filter) const;
+
+       framecnt_t write_unlocked (const Lock&                 lock,
+                                  MidiRingBuffer<framepos_t>& dst,
+                                  framepos_t                  position,
+                                  framecnt_t                  cnt);
+
+private:
+       int set_state (const XMLNode&, int version, bool with_descendants);
+       framecnt_t _length;
 };
-        
+
 } /* namespace */
 
 #endif /* __ardour_midi_playlist_source_h__ */