#include <glibmm/thread.h>
-#include <pbd/basename.h>
-#include <pbd/xml++.h>
-#include <pbd/enumwriter.h>
-
-#include <ardour/midi_region.h>
-#include <ardour/session.h>
-#include <ardour/gain.h>
-#include <ardour/dB.h>
-#include <ardour/playlist.h>
-#include <ardour/midi_source.h>
-#include <ardour/types.h>
-#include <ardour/midi_ring_buffer.h>
+#include "pbd/basename.h"
+#include "pbd/xml++.h"
+#include "pbd/enumwriter.h"
+
+#include "ardour/midi_region.h"
+#include "ardour/session.h"
+#include "ardour/gain.h"
+#include "ardour/dB.h"
+#include "ardour/playlist.h"
+#include "ardour/midi_source.h"
+#include "ardour/types.h"
+#include "ardour/midi_ring_buffer.h"
#include "i18n.h"
#include <locale.h>
}
nframes_t
-MidiRegion::_read_at (const SourceList& srcs, MidiRingBuffer<nframes_t>& dst, nframes_t position, nframes_t dur, uint32_t chan_n, NoteMode mode) const
+MidiRegion::_read_at (const SourceList& /*srcs*/, MidiRingBuffer<nframes_t>& dst, nframes_t position, nframes_t dur, uint32_t chan_n, NoteMode mode) const
{
- /*cerr << "MidiRegion " << _name << "._read_at(" << position << ") - "
- << position << " duration: " << dur << endl;*/
-
nframes_t internal_offset = 0;
nframes_t src_offset = 0;
nframes_t to_read = 0;
-
+
/* precondition: caller has verified that we cover the desired section */
assert(chan_n == 0);
return 0; /* read nothing */
}
-
if ((to_read = min (dur, _length - internal_offset)) == 0) {
return 0; /* read nothing */
}
// _start from the note times in the midi source
negative_output_buffer_position = _start;
}
-
+
+#if 0
+ cerr << "\t\tsource read from " << _position << " - " << _start << " (" << _position - _start << ") "
+ << " start in source " << _start << " + " << internal_offset << " (" << _start + internal_offset << ") "
+ << " dur = " << to_read
+ << " offset = " << output_buffer_position
+ << " negoffset = " << negative_output_buffer_position
+ << endl;
+#endif
+
if (src->midi_read (
dst, // destination buffer
_position - _start, // start position of the source in this read context
- _start + internal_offset, // where to start reading in the region
+ _start + internal_offset, // where to start reading in the source
to_read, // read duration in frames
output_buffer_position, // the offset in the output buffer
negative_output_buffer_position // amount to substract from note times