Browse Source

AudioMidiSyncHelper: Fix run cycles with many events

pull/173/head
falkTX 6 years ago
parent
commit
bbc188db8d
Signed by: falkTX <falktx@gmail.com> GPG Key ID: 2D3445A829213837
1 changed files with 8 additions and 14 deletions
  1. +8
    -14
      distrho/DistrhoPluginUtils.hpp

+ 8
- 14
distrho/DistrhoPluginUtils.hpp View File

@@ -92,9 +92,11 @@ public:
// render audio until first midi event, if needed
if (const uint32_t firstEventFrame = midiEvents[0].frame)
{
frames = midiEvents[0].frame;
remainingFrames -= frames;
totalFramesUsed += frames;
DISTRHO_SAFE_ASSERT_UINT2_RETURN(firstEventFrame < remainingFrames,
firstEventFrame, remainingFrames, false);
frames = firstEventFrame;
remainingFrames -= firstEventFrame;
totalFramesUsed += firstEventFrame;
return true;
}
}
@@ -120,7 +122,8 @@ public:
midiEvents += midiEventCount;

const uint32_t firstEventFrame = midiEvents[0].frame;
DISTRHO_SAFE_ASSERT_RETURN((firstEventFrame - frames) < remainingFrames, false);
DISTRHO_SAFE_ASSERT_UINT2_RETURN(firstEventFrame >= totalFramesUsed,
firstEventFrame, totalFramesUsed, false);

midiEventCount = 1;
while (midiEventCount < remainingMidiEventCount)
@@ -131,16 +134,7 @@ public:
break;
}

if (totalFramesUsed != 0)
{
for (uint32_t i=0; i < midiEventCount; ++i)
{
DISTRHO_SAFE_ASSERT_UINT2_BREAK(midiEvents[i].frame - totalFramesUsed == 0,
midiEvents[i].frame, totalFramesUsed);
}
}

frames = remainingFrames - firstEventFrame;
frames = firstEventFrame - totalFramesUsed;
remainingFrames -= frames;
remainingMidiEventCount -= midiEventCount;
totalFramesUsed += frames;


Loading…
Cancel
Save