Fix long-standing spelling bug.
[ardour.git] / libs / ardour / ardour / midi_source.h
index 8a0c13681d97661e06fa88c4939ddb5dfdf11aef..7f2ddfbc22b66b0af8f4d34eb904ba0eab508929 100644 (file)
@@ -34,6 +34,7 @@
 
 namespace ARDOUR {
 
+class MidiChannelFilter;
 class MidiStateTracker;
 class MidiModel;
 
@@ -77,7 +78,10 @@ class LIBARDOUR_API MidiSource : virtual public Source, public boost::enable_sha
                                      framepos_t                         start,
                                      framecnt_t                         cnt,
                                      MidiStateTracker*                  tracker,
-                                     const std::set<Evoral::Parameter>& filtered) const;
+                                     MidiChannelFilter*                 filter,
+                                     const std::set<Evoral::Parameter>& filtered,
+                                     double                             beat,
+                                     double                             start_beat) const;
 
        /** Write data from a MidiRingBuffer to this source.
         *  @param source Source to read from.
@@ -154,8 +158,12 @@ class LIBARDOUR_API MidiSource : virtual public Source, public boost::enable_sha
        virtual void load_model(const Glib::Threads::Mutex::Lock& lock, bool force_reload=false) = 0;
        virtual void destroy_model(const Glib::Threads::Mutex::Lock& lock) = 0;
 
-       /** Reset cached information (like iterators) when things have changed. */
-       void invalidate(const Glib::Threads::Mutex::Lock& lock);
+       /** Reset cached information (like iterators) when things have changed.
+        * @param lock Source lock, which must be held by caller.
+        * @param notes If non-NULL, currently active notes are added to this set.
+        */
+       void invalidate(const Glib::Threads::Mutex::Lock&                       lock,
+                       std::set<Evoral::Sequence<Evoral::Beats>::WeakNotePtr>* notes=NULL);
 
        void set_note_mode(const Glib::Threads::Mutex::Lock& lock, NoteMode mode);
 
@@ -188,7 +196,8 @@ class LIBARDOUR_API MidiSource : virtual public Source, public boost::enable_sha
                                          framepos_t                     position,
                                          framepos_t                     start,
                                          framecnt_t                     cnt,
-                                         MidiStateTracker*              tracker) const = 0;
+                                         MidiStateTracker*              tracker,
+                                         MidiChannelFilter*             filter) const = 0;
 
        /** Write data to this source from a MidiRingBuffer.
         *  @param source Buffer to read from.