X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fmidi_ring_buffer.cc;h=3b8f6fc39e10903e27a420342573f122f4e1c5c2;hb=11b02e90ac9b084cd25741b7a6bdc91c59749c16;hp=7c72718b697b78d1e89a4b7cbf3a410f8fa925ee;hpb=4dc63966f0872efe768dad61eb9b8785d06b92d1;p=ardour.git diff --git a/libs/ardour/midi_ring_buffer.cc b/libs/ardour/midi_ring_buffer.cc index 7c72718b69..3b8f6fc39e 100644 --- a/libs/ardour/midi_ring_buffer.cc +++ b/libs/ardour/midi_ring_buffer.cc @@ -37,7 +37,7 @@ namespace ARDOUR { */ template size_t -MidiRingBuffer::read(MidiBuffer& dst, framepos_t start, framepos_t end, framecnt_t offset, bool stop_on_overflow_in_dst) +MidiRingBuffer::read (MidiBuffer& dst, samplepos_t start, samplepos_t end, samplecnt_t offset, bool stop_on_overflow_in_dst) { if (this->read_space() == 0) { return 0; @@ -65,13 +65,13 @@ MidiRingBuffer::read(MidiBuffer& dst, framepos_t start, framepos_t end, frame } if (ev_time >= end) { - DEBUG_TRACE (DEBUG::MidiDiskstreamIO, string_compose ("MRB event @ %1 past end @ %2\n", ev_time, end)); + DEBUG_TRACE (DEBUG::MidiRingBuffer, string_compose ("MRB event @ %1 past end @ %2\n", ev_time, end)); break; } else if (ev_time < start) { - DEBUG_TRACE (DEBUG::MidiDiskstreamIO, string_compose ("MRB event @ %1 before start @ %2\n", ev_time, start)); + DEBUG_TRACE (DEBUG::MidiRingBuffer, string_compose ("MRB event @ %1 before start @ %2\n", ev_time, start)); break; } else { - DEBUG_TRACE (DEBUG::MidiDiskstreamIO, string_compose ("MRB event @ %1 in range %2 .. %3\n", ev_time, start, end)); + DEBUG_TRACE (DEBUG::MidiRingBuffer, string_compose ("MRB event @ %1 in range %2 .. %3\n", ev_time, start, end)); } ev_time -= start; @@ -91,7 +91,7 @@ MidiRingBuffer::read(MidiBuffer& dst, framepos_t start, framepos_t end, frame uint8_t* write_loc = dst.reserve (ev_time, ev_size); if (write_loc == 0) { if (stop_on_overflow_in_dst) { - DEBUG_TRACE (DEBUG::MidiDiskstreamIO, string_compose ("MidiRingBuffer: overflow in destination MIDI buffer, stopped after %1 events\n", count)); + DEBUG_TRACE (DEBUG::MidiRingBuffer, string_compose ("MidiRingBuffer: overflow in destination MIDI buffer, stopped after %1 events\n", count)); break; } error << "MRB: Unable to reserve space in buffer, event skipped" << endmsg; @@ -100,12 +100,12 @@ MidiRingBuffer::read(MidiBuffer& dst, framepos_t start, framepos_t end, frame } // write MIDI buffer contents - bool success = read_contents (ev_size, write_loc); + bool success = read_contents (ev_size, write_loc); #ifndef NDEBUG - if (DEBUG_ENABLED (DEBUG::MidiDiskstreamIO)) { + if (DEBUG_ENABLED (DEBUG::MidiRingBuffer)) { DEBUG_STR_DECL(a); - DEBUG_STR_APPEND(a, string_compose ("wrote MidiEvent to Buffer (time=%1, start=%2 offset=%3)", ev_time, start, offset)); + DEBUG_STR_APPEND(a, string_compose ("wrote MidiEvent to Buffer (time=%1, start=%2 offset=%3) ", ev_time, start, offset)); for (size_t i=0; i < ev_size; ++i) { DEBUG_STR_APPEND(a,hex); DEBUG_STR_APPEND(a,"0x"); @@ -113,10 +113,9 @@ MidiRingBuffer::read(MidiBuffer& dst, framepos_t start, framepos_t end, frame DEBUG_STR_APPEND(a,' '); } DEBUG_STR_APPEND(a,'\n'); - DEBUG_TRACE (DEBUG::MidiDiskstreamIO, DEBUG_STR(a).str()); + DEBUG_TRACE (DEBUG::MidiRingBuffer, DEBUG_STR(a).str()); } #endif - if (success) { _tracker.track(write_loc); ++count; @@ -130,7 +129,7 @@ MidiRingBuffer::read(MidiBuffer& dst, framepos_t start, framepos_t end, frame template size_t -MidiRingBuffer::skip_to(framepos_t start) +MidiRingBuffer::skip_to(samplepos_t start) { if (this->read_space() == 0) { return 0; @@ -195,7 +194,7 @@ MidiRingBuffer::skip_to(framepos_t start) template void -MidiRingBuffer::flush (framepos_t /*start*/, framepos_t end) +MidiRingBuffer::flush (samplepos_t /*start*/, samplepos_t end) { const size_t prefix_size = sizeof(T) + sizeof(Evoral::EventType) + sizeof(uint32_t); @@ -212,7 +211,7 @@ MidiRingBuffer::flush (framepos_t /*start*/, framepos_t end) assert (success); ev_time = *(reinterpret_cast((uintptr_t)peekbuf)); - + if (ev_time >= end) { break; } @@ -230,7 +229,7 @@ MidiRingBuffer::dump(ostream& str) size_t rspace; if ((rspace = this->read_space()) == 0) { - str << "MRB::dump: empty\n"; + str << this << " MRB::dump: empty\n"; return; } @@ -310,18 +309,18 @@ MidiRingBuffer::reset_tracker () template void -MidiRingBuffer::resolve_tracker (MidiBuffer& dst, framepos_t t) +MidiRingBuffer::resolve_tracker (MidiBuffer& dst, samplepos_t t) { _tracker.resolve_notes (dst, t); } template void -MidiRingBuffer::resolve_tracker (Evoral::EventSink& dst, framepos_t t) +MidiRingBuffer::resolve_tracker (Evoral::EventSink& dst, samplepos_t t) { _tracker.resolve_notes(dst, t); } -template class MidiRingBuffer; +template class MidiRingBuffer; } // namespace ARDOUR