17 #ifndef DISTRHO_PLUGIN_UTILS_HPP_INCLUDED
18 #define DISTRHO_PLUGIN_UTILS_HPP_INCLUDED
20 #include "DistrhoPlugin.hpp"
78 #if DISTRHO_PLUGIN_NUM_OUTPUTS > 0
109 uint32_t midiEventCount;
120 remainingMidiEventCount(mc),
134 if (remainingFrames == 0)
138 if (totalFramesUsed == 0)
141 if (remainingMidiEventCount == 0)
143 frames = remainingFrames;
145 totalFramesUsed += frames;
150 if (
const uint32_t firstEventFrame = midiEvents[0].frame)
152 DISTRHO_SAFE_ASSERT_UINT2_RETURN(firstEventFrame < remainingFrames,
153 firstEventFrame, remainingFrames,
false);
154 frames = firstEventFrame;
155 remainingFrames -= firstEventFrame;
156 totalFramesUsed += firstEventFrame;
167 if (remainingMidiEventCount == 0)
169 frames = remainingFrames;
170 midiEvents =
nullptr;
173 totalFramesUsed += frames;
178 if (midiEventCount != 0)
179 midiEvents += midiEventCount;
181 const uint32_t firstEventFrame = midiEvents[0].
frame;
182 DISTRHO_SAFE_ASSERT_UINT2_RETURN(firstEventFrame >= totalFramesUsed,
183 firstEventFrame, totalFramesUsed,
false);
186 while (midiEventCount < remainingMidiEventCount)
188 if (midiEvents[midiEventCount].frame == firstEventFrame)
194 frames = firstEventFrame - totalFramesUsed;
195 remainingFrames -= frames;
196 remainingMidiEventCount -= midiEventCount;
197 totalFramesUsed += frames;
203 uint32_t remainingFrames;
204 uint32_t remainingMidiEventCount;
205 uint32_t totalFramesUsed;
#define END_NAMESPACE_DISTRHO
Definition: DistrhoInfo.hpp:949
#define START_NAMESPACE_DISTRHO
Definition: DistrhoInfo.hpp:943
#define DISTRHO_PLUGIN_NUM_OUTPUTS
Definition: DistrhoInfo.hpp:500
Definition: DistrhoPluginUtils.hpp:104
bool nextEvent()
Definition: DistrhoPluginUtils.hpp:131
float * outputs[2]
Definition: DistrhoPluginUtils.hpp:106
AudioMidiSyncHelper(float **const o, uint32_t f, const MidiEvent *m, uint32_t mc)
Definition: DistrhoPluginUtils.hpp:114
Definition: DistrhoDetails.hpp:891
uint32_t frame
Definition: DistrhoDetails.hpp:900