From e6ab5e1803c5489acf9c2e0cbcce02903a043b1e Mon Sep 17 00:00:00 2001 From: Stephane Letz Date: Fri, 3 Aug 2012 08:20:44 +0200 Subject: [PATCH] Devin Anderson patch for Jack/CoreMIDI duplicated messages. --- macosx/coremidi/JackCoreMidiOutputPort.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/macosx/coremidi/JackCoreMidiOutputPort.cpp b/macosx/coremidi/JackCoreMidiOutputPort.cpp index a5266dee..9fcee2a4 100644 --- a/macosx/coremidi/JackCoreMidiOutputPort.cpp +++ b/macosx/coremidi/JackCoreMidiOutputPort.cpp @@ -81,7 +81,11 @@ JackCoreMidiOutputPort::Execute() packet = MIDIPacketListAdd(packet_list, PACKET_BUFFER_SIZE, packet, timestamp, size, data); if (packet) { - while (GetMicroSeconds() < send_time) { + do { + if (GetMicroSeconds() >= send_time) { + event = 0; + break; + } event = GetCoreMidiEvent(false); if (! event) { break; @@ -90,10 +94,7 @@ JackCoreMidiOutputPort::Execute() packet, GetTimeStampFromFrames(event->time), event->size, event->buffer); - if (! packet) { - break; - } - } + } while (packet); SendPacketList(packet_list); } else {