17 #ifndef DISTRHO_PLUGIN_UTILS_HPP_INCLUDED 
   18 #define DISTRHO_PLUGIN_UTILS_HPP_INCLUDED 
   20 #include "DistrhoPlugin.hpp" 
   22 START_NAMESPACE_DISTRHO
 
   56     uint32_t midiEventCount;
 
   67           remainingMidiEventCount(mc),
 
   81         if (remainingFrames == 0)
 
   85         if (totalFramesUsed == 0)
 
   88             if (remainingMidiEventCount == 0)
 
   90                 frames = remainingFrames;
 
   92                 totalFramesUsed += frames;
 
   97             if (
const uint32_t firstEventFrame = midiEvents[0].frame)
 
   99                 DISTRHO_SAFE_ASSERT_UINT2_RETURN(firstEventFrame < remainingFrames,
 
  100                                                  firstEventFrame, remainingFrames, 
false);
 
  101                 frames = firstEventFrame;
 
  102                 remainingFrames -= firstEventFrame;
 
  103                 totalFramesUsed += firstEventFrame;
 
  114         if (remainingMidiEventCount == 0)
 
  116             frames = remainingFrames;
 
  117             midiEvents = 
nullptr;
 
  120             totalFramesUsed += frames;
 
  125         if (midiEventCount != 0)
 
  126             midiEvents += midiEventCount;
 
  128         const uint32_t firstEventFrame = midiEvents[0].
frame;
 
  129         DISTRHO_SAFE_ASSERT_UINT2_RETURN(firstEventFrame >= totalFramesUsed,
 
  130                                          firstEventFrame, totalFramesUsed, 
false);
 
  133         while (midiEventCount < remainingMidiEventCount)
 
  135             if (midiEvents[midiEventCount].frame == firstEventFrame)
 
  141         frames = firstEventFrame - totalFramesUsed;
 
  142         remainingFrames -= frames;
 
  143         remainingMidiEventCount -= midiEventCount;
 
  144         totalFramesUsed += frames;
 
  150     uint32_t remainingFrames;
 
  151     uint32_t remainingMidiEventCount;
 
  152     uint32_t totalFramesUsed;
 
  157 END_NAMESPACE_DISTRHO
 
  159 #endif // DISTRHO_PLUGIN_UTILS_HPP_INCLUDED