summaryrefslogtreecommitdiff
path: root/libs/ardour/midi_state_tracker.cc
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2009-02-01 21:04:12 +0000
committerDavid Robillard <d@drobilla.net>2009-02-01 21:04:12 +0000
commit44ac5f5097af43ec6bf60489d73a532f43702bf3 (patch)
tree03e859a131be8e9187f5a95fb7eba813f9d761eb /libs/ardour/midi_state_tracker.cc
parent554d46896bf60fdf0804225acb26a9fd79e592c4 (diff)
Removed fixed/maximum event size assumption/limitation from MIDI buffer.
git-svn-id: svn://localhost/ardour2/branches/3.0@4471 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/midi_state_tracker.cc')
-rw-r--r--libs/ardour/midi_state_tracker.cc7
1 files changed, 4 insertions, 3 deletions
diff --git a/libs/ardour/midi_state_tracker.cc b/libs/ardour/midi_state_tracker.cc
index c2aa19e5c8..3871c139df 100644
--- a/libs/ardour/midi_state_tracker.cc
+++ b/libs/ardour/midi_state_tracker.cc
@@ -31,7 +31,7 @@ MidiStateTracker::MidiStateTracker ()
}
void
-MidiStateTracker::track_note_onoffs (Evoral::MIDIEvent &event)
+MidiStateTracker::track_note_onoffs (const Evoral::MIDIEvent &event)
{
if (event.is_note_on()) {
_active_notes [event.note() + 128 * event.channel()] = true;
@@ -46,12 +46,13 @@ MidiStateTracker::track (const MidiBuffer::iterator &from, const MidiBuffer::ite
bool ret = false;
for (MidiBuffer::iterator i = from; i != to; ++i) {
- if ((*i).event_type() == LoopEventType) {
+ const Evoral::MIDIEvent ev(*i, false);
+ if (ev.event_type() == LoopEventType) {
ret = true;
continue;
}
- track_note_onoffs (*i);
+ track_note_onoffs (ev);
}
return ret;
}