47 template <
typename Events>
50 using EventType =
decltype (&*events.events);
56 return static_cast<EventType
> (events.events)[index];
65 : numEventsUsed (0), numEventsAllocated (0)
79 if (events !=
nullptr)
83 void addEvent (
const void*
const midiData,
int numBytes,
int frameOffset)
85 ensureSize (numEventsUsed + 1);
87 void*
const ptr = getEvent (numEventsUsed);
99 e->noteSampleLength = 0;
100 e->noteSampleOffset = 0;
102 e->noteVelocityOff = 0;
105 e->sampleOffset = frameOffset;
106 memcpy (
e->midiData, midiData, (
size_t) numBytes);
115 se->sysExDump =
new char [(size_t) numBytes];
116 memcpy (se->sysExDump, midiData, (
size_t) numBytes);
120 se->offsetSamples = frameOffset;
122 se->sysExDumpSize = numBytes;
135 const auto*
const e = getEvent (*events,
i);
150 (
int) se->sysExDumpSize,
160 if (numEventsNeeded > numEventsAllocated)
162 numEventsNeeded = (numEventsNeeded + 32) & ~31;
166 if (events ==
nullptr)
171 for (
int i = numEventsAllocated;
i < numEventsNeeded; ++
i)
172 getEvent (
i) = allocateVSTEvent();
174 numEventsAllocated = numEventsNeeded;
180 if (events !=
nullptr)
182 for (
int i = numEventsAllocated; --
i >= 0;)
183 freeVSTEvent (getEvent (
i));
187 numEventsAllocated = 0;
Definition juce_HeapBlock.h:87
Definition juce_MidiBuffer.h:145
bool addEvent(const MidiMessage &midiMessage, int sampleNumber)
Definition juce_MidiBuffer.cpp:122
Definition juce_VSTMidiEventList.h:45
static Vst2::VstEvent * allocateVSTEvent()
Definition juce_VSTMidiEventList.h:197
Vst2::VstEvent *& getEvent(int index)
Definition juce_VSTMidiEventList.h:60
static auto & getEvent(Events &events, int index)
Definition juce_VSTMidiEventList.h:48
static void addEventsToMidiBuffer(const Vst2::VstEventBlock *events, MidiBuffer &dest)
Definition juce_VSTMidiEventList.h:131
int numEventsUsed
Definition juce_VSTMidiEventList.h:195
static void freeVSTEvent(Vst2::VstEvent *e)
Definition juce_VSTMidiEventList.h:211
HeapBlock< Vst2::VstEventBlock > events
Definition juce_VSTMidiEventList.h:192
Vst2::VstEvent *const & getEvent(int index) const
Definition juce_VSTMidiEventList.h:59
void addEvent(const void *const midiData, int numBytes, int frameOffset)
Definition juce_VSTMidiEventList.h:83
int numEventsAllocated
Definition juce_VSTMidiEventList.h:195
void clear()
Definition juce_VSTMidiEventList.h:75
VSTMidiEventList()
Definition juce_VSTMidiEventList.h:64
void freeEvents()
Definition juce_VSTMidiEventList.h:178
void ensureSize(int numEventsNeeded)
Definition juce_VSTMidiEventList.h:158
* e
Definition inflate.c:1404
register unsigned i
Definition inflate.c:1575
Definition juce_VSTMidiEventList.h:29
@ vstSysExEventType
Definition juce_VSTMidiEventList.h:291
@ vstMidiEventType
Definition juce_VSTMidiEventList.h:290
Definition carla_juce.cpp:31
constexpr Type jmax(Type a, Type b)
Definition juce_MathsFunctions.h:94
jack_client_t client jack_client_t client jack_client_t client jack_client_t JackInfoShutdownCallback void arg jack_client_t jack_port_t port void func jack_client_t const char const char unsigned long flags const jack_port_t port jack_client_t jack_port_id_t port_id const jack_port_t const char port_name const jack_port_t port void * ptr
Definition juce_linux_JackAudio.cpp:79
unsigned char uint8
Definition juce_MathsFunctions.h:37
Definition juce_VSTMidiEventList.h:299
int32 numberOfEvents
Definition juce_VSTMidiEventList.h:300
Definition juce_VSTMidiEventList.h:280
Definition juce_VSTMidiEventList.h:310
Definition juce_VSTMidiEventList.h:334
char * sysExDump
Definition juce_VSTMidiEventList.h:341
memcpy(hh, h, RAND_HEAD_LEN)