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