From 9faf3bd048f48e34cd41e4ea8d8ca15e1446854b Mon Sep 17 00:00:00 2001 From: David Robillard Date: Tue, 5 May 2009 02:04:56 +0000 Subject: [PATCH] Fix crash when playing back MIDI within a loop. Fixes mantis issue #0002570. git-svn-id: svn://localhost/ardour2/branches/3.0@5052 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/midi_ring_buffer.cc | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/libs/ardour/midi_ring_buffer.cc b/libs/ardour/midi_ring_buffer.cc index 469222d5d7..746dc3b3eb 100644 --- a/libs/ardour/midi_ring_buffer.cc +++ b/libs/ardour/midi_ring_buffer.cc @@ -65,14 +65,12 @@ MidiRingBuffer::read(MidiBuffer& dst, nframes_t start, nframes_t end, nframes // This event marks a loop end (i.e. the next event's timestamp will be non-monotonic) if (ev_type == LoopEventType) { - ev_time -= start; + /*ev_time -= start; ev_time += offset; - Evoral::MIDIEvent loopevent(LoopEventType, ev_time); - dst.push_back(loopevent); - - // We can safely return, without reading the data, because - // a LoopEvent does not have data. - cerr << "MRB loop boundary @ " << ev_time << endl; + cerr << "MRB loop boundary @ " << ev_time << endl;*/ + + // Return without reading data or writing to buffer (loop events have no data) + // FIXME: This is not correct, loses events after the loop this cycle return count + 1; }