summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/midi_source.h
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-10-19 17:05:22 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-10-19 17:05:22 +0000
commit539a692b0e9d249cab75a2d1c255f8cbef8bcf6b (patch)
tree9c40db2f5651a57bd90e034c8750209915db2363 /libs/ardour/ardour/midi_source.h
parenta86b994c683b981c395f829082abef67add2424a (diff)
track notes at the region level in MidiPlaylist; resolve them (deliver note offs) if a note spans the end of the region
git-svn-id: svn://localhost/ardour2/branches/3.0@5804 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/midi_source.h')
-rw-r--r--libs/ardour/ardour/midi_source.h15
1 files changed, 9 insertions, 6 deletions
diff --git a/libs/ardour/ardour/midi_source.h b/libs/ardour/ardour/midi_source.h
index bffcde5192..5298ab2f4f 100644
--- a/libs/ardour/ardour/midi_source.h
+++ b/libs/ardour/ardour/midi_source.h
@@ -34,6 +34,7 @@
namespace ARDOUR {
+class MidiStateTracker;
class MidiModel;
template<typename T> class MidiRingBuffer;
@@ -55,11 +56,12 @@ class MidiSource : virtual public Source
* \param cnt Length of range to be read (in audio frames)
* \param stamp_offset Offset to add to event times written to dst
* \param negative_stamp_offset Offset to subtract from event times written to dst
+ * \param tracker an optional pointer to MidiStateTracker object, for note on/off tracking
*/
virtual nframes_t midi_read (MidiRingBuffer<nframes_t>& dst,
- sframes_t source_start,
- sframes_t start, nframes_t cnt,
- sframes_t stamp_offset, sframes_t negative_stamp_offset) const;
+ sframes_t source_start,
+ sframes_t start, nframes_t cnt,
+ sframes_t stamp_offset, sframes_t negative_stamp_offset, MidiStateTracker*) const;
virtual nframes_t midi_write (MidiRingBuffer<nframes_t>& src,
sframes_t source_start,
@@ -113,9 +115,10 @@ class MidiSource : virtual public Source
virtual void flush_midi() = 0;
virtual nframes_t read_unlocked (MidiRingBuffer<nframes_t>& dst,
- sframes_t position,
- sframes_t start, nframes_t cnt,
- sframes_t stamp_offset, sframes_t negative_stamp_offset) const = 0;
+ sframes_t position,
+ sframes_t start, nframes_t cnt,
+ sframes_t stamp_offset, sframes_t negative_stamp_offset,
+ MidiStateTracker* tracker) const = 0;
virtual nframes_t write_unlocked (MidiRingBuffer<nframes_t>& dst,
sframes_t position,