extend strict-i/o to include route outputs.
[ardour.git] / libs / ardour / midi_region.cc
index 5c197761acd044126d234a0d03faab4d3eac609e..6a9e1cd762ec7e8961c23af46ab83e1e06bf92ac 100644 (file)
@@ -28,7 +28,7 @@
 #include <glibmm/fileutils.h>
 #include <glibmm/miscutils.h>
 
-#include "evoral/types.hpp"
+#include "evoral/Beats.hpp"
 
 #include "pbd/xml++.h"
 #include "pbd/basename.h"
@@ -230,9 +230,15 @@ MidiRegion::set_position_internal (framepos_t pos, bool allow_bbt_recompute)
 }
 
 framecnt_t
-MidiRegion::read_at (Evoral::EventSink<framepos_t>& out, framepos_t position, framecnt_t dur, uint32_t chan_n, NoteMode mode, MidiStateTracker* tracker) const
+MidiRegion::read_at (Evoral::EventSink<framepos_t>& out,
+                     framepos_t                     position,
+                     framecnt_t                     dur,
+                     uint32_t                       chan_n,
+                     NoteMode                       mode,
+                     MidiStateTracker*              tracker,
+                     MidiChannelFilter*             filter) const
 {
-       return _read_at (_sources, out, position, dur, chan_n, mode, tracker);
+       return _read_at (_sources, out, position, dur, chan_n, mode, tracker, filter);
 }
 
 framecnt_t
@@ -248,7 +254,8 @@ MidiRegion::_read_at (const SourceList&              /*srcs*/,
                       framecnt_t                     dur,
                       uint32_t                       chan_n,
                       NoteMode                       mode,
-                      MidiStateTracker*              tracker) const
+                      MidiStateTracker*              tracker,
+                      MidiChannelFilter*             filter) const
 {
        frameoffset_t internal_offset = 0;
        framecnt_t    to_read         = 0;
@@ -301,6 +308,7 @@ MidiRegion::_read_at (const SourceList&              /*srcs*/,
                        _start + internal_offset, // where to start reading in the source
                        to_read, // read duration in frames
                        tracker,
+                       filter,
                        _filtered_parameters
                    ) != to_read) {
                return 0; /* "read nothing" */
@@ -450,14 +458,6 @@ MidiRegion::fix_negative_start ()
        _start_beats = Evoral::Beats();
 }
 
-/** Transpose the notes in this region by a given number of semitones */
-void
-MidiRegion::transpose (int semitones)
-{
-       BeatsFramesConverter c (_session.tempo_map(), _start);
-       model()->transpose (c.from (_start), c.from (_start + _length), semitones);
-}
-
 void
 MidiRegion::set_start_internal (framecnt_t s)
 {