36#define JUCE_DECLARE_VST3_COM_REF_METHODS \
37 Steinberg::uint32 PLUGIN_API addRef() override { return (Steinberg::uint32) ++refCount; } \
38 Steinberg::uint32 PLUGIN_API release() override { const int r = --refCount; if (r == 0) delete this; return (Steinberg::uint32) r; }
40#define JUCE_DECLARE_VST3_COM_QUERY_METHODS \
41 Steinberg::tresult PLUGIN_API queryInterface (const Steinberg::TUID, void** obj) override \
45 return Steinberg::kNotImplemented; \
92 template <
typename Ptr>
94 :
result (resultIn, ptrIn),
101 const auto toReturn =
result.extract (obj);
110 template <
typename Ptr>
111 static void doAddRef (
void* obj) {
static_cast<Ptr*
> (obj)->addRef(); }
118template <
typename CommonClassType,
typename SourceClassType>
struct SharedBase {};
120template <
typename ToTest,
typename CommonClassType,
typename SourceClassType>
125 if (!
doUIDsMatch (targetIID, CommonClassType::iid))
128 return {
Steinberg::kResultOk,
static_cast<CommonClassType*
> (
static_cast<SourceClassType*
> (std::addressof (toTest))) };
131template <
typename ToTest,
typename ClassType>
139template <
typename ToTest>
142template <
typename ToTest,
typename Head,
typename... Tail>
154#if VST_VERSION < 0x030608
155 #define kAmbi1stOrderACN kBFormat
159inline juce::String
toString (
const Steinberg::char8*
string)
noexcept {
return juce::String (juce::CharPointer_UTF8 ((juce::CharPointer_UTF8::CharType*)
string)); }
160inline juce::String
toString (
const Steinberg::char16*
string)
noexcept {
return juce::String (juce::CharPointer_UTF16 ((juce::CharPointer_UTF16::CharType*)
string)); }
182#elif JUCE_LINUX || JUCE_BSD
189 bool isInput,
int busIndex)
193 if (processor !=
nullptr)
284 return (1ull << (channelIndex + 33ull ));
387 {
k51_4, {
X::left,
X::right,
X::centre,
X::LFE,
X::leftSurround,
X::rightSurround,
X::topFrontLeft,
X::topFrontRight,
X::topRearLeft,
X::topRearRight } },
388 {
k50_4, {
X::left,
X::right,
X::centre,
X::leftSurround,
X::rightSurround,
X::topFrontLeft,
X::topFrontRight,
X::topRearLeft,
X::topRearRight } },
389 {
k71_2, {
X::left,
X::right,
X::centre,
X::LFE,
X::leftSurroundRear,
X::rightSurroundRear,
X::leftSurroundSide,
X::rightSurroundSide,
X::topSideLeft,
X::topSideRight } },
390 {
k70_2, {
X::left,
X::right,
X::centre,
X::leftSurroundRear,
X::rightSurroundRear,
X::leftSurroundSide,
X::rightSurroundSide,
X::topSideLeft,
X::topSideRight } },
391 {
k71_4, {
X::left,
X::right,
X::centre,
X::LFE,
X::leftSurroundRear,
X::rightSurroundRear,
X::leftSurroundSide,
X::rightSurroundSide,
X::topFrontLeft,
X::topFrontRight,
X::topRearLeft,
X::topRearRight } },
392 {
k70_4, {
X::left,
X::right,
X::centre,
X::leftSurroundRear,
X::rightSurroundRear,
X::leftSurroundSide,
X::rightSurroundSide,
X::topFrontLeft,
X::topFrontRight,
X::topRearLeft,
X::topRearRight } },
393 {
k71_6, {
X::left,
X::right,
X::centre,
X::LFE,
X::leftSurroundRear,
X::rightSurroundRear,
X::leftSurroundSide,
X::rightSurroundSide,
X::topFrontLeft,
X::topFrontRight,
X::topRearLeft,
X::topRearRight,
X::topSideLeft,
X::topSideRight } },
394 {
k70_6, {
X::left,
X::right,
X::centre,
X::leftSurroundRear,
X::rightSurroundRear,
X::leftSurroundSide,
X::rightSurroundSide,
X::topFrontLeft,
X::topFrontRight,
X::topRearLeft,
X::topRearRight,
X::topSideLeft,
X::topSideRight } },
397 {
k91_6, {
X::wideLeft,
X::wideRight,
X::centre,
X::LFE,
X::leftSurroundRear,
X::rightSurroundRear,
X::left,
X::right,
X::leftSurroundSide,
X::rightSurroundSide,
X::topFrontLeft,
X::topFrontRight,
X::topRearLeft,
X::topRearRight,
X::topSideLeft,
X::topSideRight } },
398 {
k90_6, {
X::wideLeft,
X::wideRight,
X::centre,
X::leftSurroundRear,
X::rightSurroundRear,
X::left,
X::right,
X::leftSurroundSide,
X::rightSurroundSide,
X::topFrontLeft,
X::topFrontRight,
X::topRearLeft,
X::topRearRight,
X::topSideLeft,
X::topSideRight } },
402 static std::once_flag layoutTableCheckedFlag;
412 std::set<Steinberg::Vst::SpeakerArrangement> arrangements;
415 arrangements.insert (item.arrangement);
422 return std::set<AudioChannelSet::ChannelType> (item.channelOrder).size() == item.channelOrder.size();
436 const auto arrangementMatches = [arr] (
const auto& layoutPair) {
return layoutPair.arrangement == arr; };
440 return iter->channelOrder;
445 result.ensureStorageAllocated (channels);
447 for (
auto i = 0;
i < channels; ++
i)
461 const auto channelSetMatches = [&channels] (
const auto& layoutPair)
468 return iter->arrangement;
472 for (
const auto&
type : channels.getChannelTypes())
529 for (
const auto&
type : order)
543 :
set (channelSet),
map (channelSet, active) {}
574 const std::vector<DynamicChannelMapping>& outputMap)
576 const auto countUsedChannelsInVector = [] (
const std::vector<DynamicChannelMapping>& map)
578 return std::accumulate (map.begin(), map.end(), 0, [] (
auto acc,
const auto& item)
580 return acc + (item.isClientActive() ? (int) item.size() : 0);
584 return jmax (countUsedChannelsInVector (inputMap), countUsedChannelsInVector (outputMap));
587template <
typename FloatType>
593 buffer.setSize (numChannels, blockSize);
607template <
typename FloatType>
610 return (
int) std::distance (buffers, std::find_if (buffers, buffers + num, [] (
auto& buf)
616template <
typename FloatType,
typename Iterator>
617static bool validateLayouts (Iterator first, Iterator last,
const std::vector<DynamicChannelMapping>& map)
619 if ((
size_t) std::distance (first, last) > map.size())
622 auto mapIterator = map.begin();
624 for (
auto it = first; it != last; ++it, ++mapIterator)
627 const auto anyChannelIsNull = std::any_of (busPtr, busPtr + it->numChannels, [] (
auto*
ptr) { return ptr == nullptr; });
630 if ((mapIterator->isHostActive() && anyChannelIsNull) || ((
int) mapIterator->size() != it->numChannels))
636 return std::none_of (mapIterator, map.end(), [] (
const auto& item) { return item.isHostActive(); });
650template <
typename FloatType>
661 const std::vector<DynamicChannelMapping>& inputMap,
662 const std::vector<DynamicChannelMapping>& outputMap)
688 const std::vector<DynamicChannelMapping>& map,
691 for (
size_t busIndex = 0; busIndex < map.size(); ++busIndex)
693 const auto mapping = map[busIndex];
695 if (! mapping.isClientActive())
698 const auto originalSize =
channels.size();
700 for (
size_t channelIndex = 0; channelIndex < mapping.size(); ++channelIndex)
703 if (mapping.isHostActive() && busIndex < vstInputs)
707 for (
size_t channelIndex = 0; channelIndex < mapping.size(); ++channelIndex)
709 FloatVectorOperations::copy (
channels[(
size_t) mapping.getJuceChannelForVst3Channel ((
int) channelIndex) + originalSize],
710 busPtr[channelIndex],
711 (
size_t)
data.numSamples);
716 for (
size_t channelIndex = 0; channelIndex < mapping.size(); ++channelIndex)
717 FloatVectorOperations::clear (
channels[originalSize + channelIndex], (
size_t)
data.numSamples);
723 const std::vector<DynamicChannelMapping>& map,
726 for (
size_t i = 0, initialBusIndex = 0;
i < (size_t) map.size(); ++
i)
728 const auto& mapping = map[
i];
730 if (mapping.isClientActive())
732 for (
size_t j = 0;
j < mapping.size(); ++
j)
734 if (
channels.size() <= initialBusIndex +
j)
738 initialBusIndex += mapping.size();
749 for (
auto i = 0;
i < usedChannels; ++
i)
752 FloatVectorOperations::clear (
channels.back(), usedSamples);
785 std::vector<DynamicChannelMapping>& map;
791 if (pair.map.empty())
794 pair.map.emplace_back (*processor.
getBus (pair.isInput,
i));
801 for (
size_t i = 0;
i < (size_t) processor.
getBusCount (pair.isInput); ++
i)
816 const auto findNumChannelsWhenAllBusesEnabled = [] (
const auto& map)
818 return std::accumulate (map.cbegin(), map.cend(), 0, [] (
auto acc,
const auto& item)
820 return acc + (int) item.size();
824 const auto numChannels =
jmax (findNumChannelsWhenAllBusesEnabled (
inputMap),
825 findNumChannelsWhenAllBusesEnabled (
outputMap));
827 floatData .prepare (numChannels, blockSize);
840 const auto sync = [] (
auto& map,
auto&
client)
842 for (
size_t i = 0;
i < map.size(); ++
i)
873 static void setHostActive (std::vector<DynamicChannelMapping>& map,
size_t bus,
bool state)
875 if (bus < map.size())
876 map[bus].setHostActive (state);
881 if (bus < map.size() && map[bus].isHostActive())
882 return map[bus].getAudioChannelSet();
899template <
typename FloatType>
904 const std::vector<DynamicChannelMapping>* inputMapIn,
905 const std::vector<DynamicChannelMapping>* outputMapIn,
907 :
buffer (mapperData.getMappedBuffer (hostData, *inputMapIn, *outputMapIn)),
914 &mapperIn.getInputMap(),
915 &mapperIn.getOutputMap(),
935 for (
size_t i = 0, juceBusOffset = 0;
i <
outputMap->size(); ++
i)
937 const auto& mapping = (*outputMap)[
i];
939 if (mapping.isHostActive() &&
i < vstOutputs)
941 auto& bus =
data.outputs[
i];
943 if (mapping.isClientActive())
945 for (
size_t j = 0;
j < mapping.size(); ++
j)
948 const auto juceChannel = juceBusOffset + (size_t) mapping.getJuceChannelForVst3Channel ((
int)
j);
949 FloatVectorOperations::copy (hostChannel,
buffer.getReadPointer ((
int) juceChannel), (
size_t)
data.numSamples);
954 for (
size_t j = 0;
j < mapping.size(); ++
j)
957 FloatVectorOperations::clear (hostChannel, (
size_t)
data.numSamples);
962 if (mapping.isClientActive())
963 juceBusOffset += mapping.size();
972 std::for_each (
data.outputs,
data.outputs + vstOutputs, [
this] (
auto& bus)
974 auto** busPtr = getAudioBusPointer (detail::Tag<FloatType>{}, bus);
975 std::for_each (busPtr, busPtr + bus.numChannels, [
this] (
auto*
ptr)
978 FloatVectorOperations::clear (ptr, (int) data.numSamples);
983 const std::vector<DynamicChannelMapping>*
outputMap =
nullptr;
1001 void prepare (std::vector<ChannelMapping> arrangements)
1003 mappings = std::move (arrangements);
1011 template <
typename FloatType>
1014 int channelIndexOffset = 0;
1020 channelIndexOffset += mapping.isActive() ? (
int) mapping.size() : 0;
1027 template <
typename FloatType>
1028 using Bus = std::vector<FloatType*>;
1030 template <
typename FloatType>
1036 template <
typename FloatType>
1041 int channelStartOffset)
const
1045 for (
size_t i = 0;
i < busMap.
size(); ++
i)
1053 vstBuffers.
silenceFlags = busMap.
isActive() ? 0 : std::numeric_limits<Steinberg::uint64>::max();
1067template <
class ObjectType>
1076 operator ObjectType*()
const noexcept {
return source; }
1090 bool operator== (ObjectType*
const other)
noexcept {
return source == other; }
1091 bool operator!= (ObjectType*
const other)
noexcept {
return source != other; }
1131 for (
size_t channelIndex = 0; channelIndex <
channels.size(); ++channelIndex)
1151 for (
size_t controllerIndex = 0; controllerIndex < channel.size(); ++controllerIndex)
1152 channel[controllerIndex] =
getSingleMapping (mapping, channelIndex, controllerIndex);
1156 size_t channelIndex,
1157 size_t controllerIndex)
1161 (
int16) channelIndex,
1197 e =
events.getReference ((
int) index);
1227 template <
typename Callback>
1254 template <
typename Callback>
1259 if (midiMapping ==
nullptr)
1264 if (! controlEvent.hasValue())
1268 controlEvent->controllerNumber);
1271 callback (controlParamID, controlEvent->paramValue);
1276 template <
typename Callback>
1292 if (! maybeEvent.hasValue())
1295 maybeEvent->busIndex = 0;
1297 result.addEvent (*maybeEvent);
1303 template <
typename Callback>
1309 enum { maxNumEvents = 2048 };
1312 for (
const auto metadata : midiBuffer)
1314 if (++numEvents > maxNumEvents)
1340 e.noteOn.length = 0;
1341 e.noteOn.tuning = 0.0f;
1342 e.noteOn.noteId = -1;
1353 e.noteOff.tuning = 0.0f;
1354 e.noteOff.noteId = -1;
1362 e.data.bytes = midiEventData + 1;
1363 e.data.size = (
uint32)
msg.getSysExDataSize();
1373 e.midiCCOut.controlNumber =
uint8 (
jlimit (0, 255, controlNumber));
1386 e.polyPressure.noteId = -1;
1394 msg.getChannelPressureValue());
1400 msg.getControllerNumber(),
1401 msg.getControllerValue());
1408 msg.getNoteNumber(),
1409 msg.getAfterTouchValue());
1416 msg.getRawData()[1],
1417 msg.getRawData()[2]);
1424 msg.getProgramChangeNumber());
1431 msg.getQuarterFrameValue());
1435 const uint8* midiEventData,
1441 if (
msg.isNoteOff())
1447 if (
msg.isChannelPressure())
1450 if (
msg.isPitchWheel())
1453 if (
msg.isProgramChange())
1456 if (
msg.isController())
1459 if (
msg.isQuarterFrame())
1462 if (
msg.isAftertouch())
1482 if (
e.controlNumber <= 127)
1487 switch (
e.controlNumber)
1495 (
e.value & 0x7f) | ((
e.value2 & 0x7f) << 7));
1566 if (
msg.isController())
1569 if (
msg.isPitchWheel())
1572 if (
msg.isChannelPressure())
1610 template <
typename Callback>
1648 flags.fetch_or (newFlags);
1659 listener.restartComponentOnMessageThread (
flags.exchange (0));
Type jmax(const Type a, const Type b)
Definition MathsFunctions.h:48
Controller controller
Definition main.C:5
#define noexcept
Definition DistrhoDefines.h:72
uint8_t a
Definition Spc_Cpu.h:141
CAdPlugDatabase::CRecord::RecordType type
Definition adplugdb.cpp:93
static void message(int level, const char *fmt,...)
Definition adplugdb.cpp:120
uint8_t uint8
Definition basics.h:86
static MidiMessage createSysExMessage(const void *sysexData, int dataSize)
Definition MidiMessage.cpp:606
static MidiMessage noteOn(int channel, int noteNumber, float velocity) noexcept
Definition MidiMessage.cpp:534
static MidiMessage aftertouchChange(int channel, int noteNumber, int aftertouchAmount) noexcept
Definition MidiMessage.cpp:412
static MidiMessage noteOff(int channel, int noteNumber, float velocity) noexcept
Definition MidiMessage.cpp:548
static MidiMessage controllerEvent(int channel, int controllerType, int value) noexcept
Definition MidiMessage.cpp:516
static MidiMessage channelPressureChange(int channel, int pressure) noexcept
Definition MidiMessage.cpp:436
static MidiMessage pitchWheel(int channel, int position) noexcept
Definition MidiMessage.cpp:484
static MidiMessage programChange(int channel, int programNumber) noexcept
Definition MidiMessage.cpp:465
static MidiMessage quarterFrame(int sequenceNumber, int value) noexcept
Definition MidiMessage.cpp:811
Definition funknown.h:361
virtual tresult PLUGIN_API queryInterface(const TUID _iid, void **obj)=0
Definition ipluginbase.h:159
virtual tresult PLUGIN_API createInstance(FIDString cid, FIDString _iid, void **obj)=0
UString & fromAscii(const char *src, int32 srcSize=-1)
Definition ustring.cpp:132
UString & assign(const char16 *src, int32 srcSize=-1)
Definition ustring.cpp:110
Definition ivstaudioprocessor.h:259
virtual tresult PLUGIN_API getBusArrangement(BusDirection dir, int32 index, SpeakerArrangement &arr)=0
Definition ivstevents.h:197
virtual int32 PLUGIN_API getEventCount()=0
virtual tresult PLUGIN_API getEvent(int32 index, Event &e)=0
Definition ivsteditcontroller.h:551
virtual tresult PLUGIN_API getMidiControllerAssignment(int32 busIndex, int16 channel, CtrlNumber midiControllerNumber, ParamID &id)=0
Definition juce_Array.h:56
void triggerAsyncUpdate()
Definition juce_AsyncUpdater.cpp:62
void cancelPendingUpdate() noexcept
Definition juce_AsyncUpdater.cpp:74
AsyncUpdater()
Definition juce_AsyncUpdater.cpp:44
Definition juce_AudioSampleBuffer.h:34
Definition juce_AudioChannelSet.h:47
static AudioChannelSet JUCE_CALLTYPE disabled()
Definition juce_AudioChannelSet.cpp:450
static AudioChannelSet JUCE_CALLTYPE mono()
Definition juce_AudioChannelSet.cpp:451
ChannelType
Definition juce_AudioChannelSet.h:317
@ wideRight
Definition juce_AudioChannelSet.h:346
@ topFrontRight
Definition juce_AudioChannelSet.h:338
@ ambisonicACN2
Definition juce_AudioChannelSet.h:359
@ topFrontLeft
Definition juce_AudioChannelSet.h:336
@ ambisonicACN25
Definition juce_AudioChannelSet.h:390
@ ambisonicACN28
Definition juce_AudioChannelSet.h:393
@ right
Definition juce_AudioChannelSet.h:322
@ ambisonicACN13
Definition juce_AudioChannelSet.h:374
@ ambisonicACN8
Definition juce_AudioChannelSet.h:367
@ ambisonicACN4
Definition juce_AudioChannelSet.h:363
@ leftSurround
Definition juce_AudioChannelSet.h:327
@ topRearLeft
Definition juce_AudioChannelSet.h:339
@ ambisonicACN15
Definition juce_AudioChannelSet.h:376
@ centreSurround
Definition juce_AudioChannelSet.h:331
@ topSideLeft
Definition juce_AudioChannelSet.h:350
@ ambisonicACN30
Definition juce_AudioChannelSet.h:395
@ surround
Definition juce_AudioChannelSet.h:332
@ unknown
Definition juce_AudioChannelSet.h:318
@ proximityRight
Definition juce_AudioChannelSet.h:414
@ ambisonicACN19
Definition juce_AudioChannelSet.h:382
@ ambisonicACN18
Definition juce_AudioChannelSet.h:381
@ bottomRearCentre
Definition juce_AudioChannelSet.h:419
@ ambisonicACN27
Definition juce_AudioChannelSet.h:392
@ centre
Definition juce_AudioChannelSet.h:323
@ ambisonicACN21
Definition juce_AudioChannelSet.h:384
@ bottomRearRight
Definition juce_AudioChannelSet.h:420
@ ambisonicACN26
Definition juce_AudioChannelSet.h:391
@ ambisonicACN22
Definition juce_AudioChannelSet.h:385
@ ambisonicACN12
Definition juce_AudioChannelSet.h:373
@ bottomRearLeft
Definition juce_AudioChannelSet.h:418
@ ambisonicACN24
Definition juce_AudioChannelSet.h:387
@ topSideRight
Definition juce_AudioChannelSet.h:351
@ ambisonicACN1
Definition juce_AudioChannelSet.h:358
@ ambisonicACN32
Definition juce_AudioChannelSet.h:397
@ rightSurroundRear
Definition juce_AudioChannelSet.h:344
@ rightSurroundSide
Definition juce_AudioChannelSet.h:334
@ ambisonicACN29
Definition juce_AudioChannelSet.h:394
@ ambisonicACN3
Definition juce_AudioChannelSet.h:360
@ ambisonicACN31
Definition juce_AudioChannelSet.h:396
@ bottomFrontRight
Definition juce_AudioChannelSet.h:411
@ ambisonicACN6
Definition juce_AudioChannelSet.h:365
@ wideLeft
Definition juce_AudioChannelSet.h:345
@ ambisonicACN17
Definition juce_AudioChannelSet.h:380
@ proximityLeft
Definition juce_AudioChannelSet.h:413
@ ambisonicACN35
Definition juce_AudioChannelSet.h:400
@ rightSurround
Definition juce_AudioChannelSet.h:328
@ ambisonicACN20
Definition juce_AudioChannelSet.h:383
@ ambisonicACN16
Definition juce_AudioChannelSet.h:379
@ ambisonicACN0
Definition juce_AudioChannelSet.h:357
@ bottomFrontCentre
Definition juce_AudioChannelSet.h:410
@ ambisonicACN10
Definition juce_AudioChannelSet.h:371
@ topRearCentre
Definition juce_AudioChannelSet.h:340
@ ambisonicACN14
Definition juce_AudioChannelSet.h:375
@ topMiddle
Definition juce_AudioChannelSet.h:335
@ topFrontCentre
Definition juce_AudioChannelSet.h:337
@ ambisonicACN34
Definition juce_AudioChannelSet.h:399
@ topRearRight
Definition juce_AudioChannelSet.h:341
@ LFE2
Definition juce_AudioChannelSet.h:342
@ rightCentre
Definition juce_AudioChannelSet.h:330
@ leftCentre
Definition juce_AudioChannelSet.h:329
@ bottomSideRight
Definition juce_AudioChannelSet.h:417
@ ambisonicACN5
Definition juce_AudioChannelSet.h:364
@ ambisonicACN23
Definition juce_AudioChannelSet.h:386
@ ambisonicACN11
Definition juce_AudioChannelSet.h:372
@ leftSurroundSide
Definition juce_AudioChannelSet.h:333
@ bottomSideLeft
Definition juce_AudioChannelSet.h:416
@ ambisonicACN7
Definition juce_AudioChannelSet.h:366
@ ambisonicACN33
Definition juce_AudioChannelSet.h:398
@ discreteChannel0
Definition juce_AudioChannelSet.h:423
@ bottomFrontLeft
Definition juce_AudioChannelSet.h:409
@ leftSurroundRear
Definition juce_AudioChannelSet.h:343
@ left
Definition juce_AudioChannelSet.h:321
@ ambisonicACN9
Definition juce_AudioChannelSet.h:370
@ LFE
Definition juce_AudioChannelSet.h:326
static AudioChannelSet JUCE_CALLTYPE channelSetWithChannels(const Array< ChannelType > &)
Definition juce_AudioChannelSet.cpp:605
int getChannelIndexForType(ChannelType type) const noexcept
Definition juce_AudioChannelSet.cpp:411
Definition juce_AudioProcessor.h:361
Definition juce_AudioProcessor.h:46
Bus * getBus(bool isInput, int busIndex) noexcept
Definition juce_AudioProcessor.h:509
int getBusCount(bool isInput) const noexcept
Definition juce_AudioProcessor.h:504
Definition juce_BigInteger.h:39
int findNextSetBit(int startIndex) const noexcept
Definition juce_BigInteger.cpp:387
CachedParamValues()=default
void ifSet(Callback &&callback)
Definition juce_VST3Common.h:1611
CachedParamValues(std::vector< Steinberg::Vst::ParamID > paramIdsIn)
Definition juce_VST3Common.h:1598
float get(Steinberg::int32 index) const noexcept
Definition juce_VST3Common.h:1608
void setWithoutNotifying(Steinberg::int32 index, float value)
Definition juce_VST3Common.h:1606
FlaggedFloatCache< 1 > floatCache
Definition juce_VST3Common.h:1621
size_t size() const noexcept
Definition juce_VST3Common.h:1601
std::vector< Steinberg::Vst::ParamID > paramIds
Definition juce_VST3Common.h:1620
Steinberg::Vst::ParamID getParamID(Steinberg::int32 index) const noexcept
Definition juce_VST3Common.h:1603
void set(Steinberg::int32 index, float value)
Definition juce_VST3Common.h:1605
Definition juce_VST3Common.h:652
static void setUpOutputChannels(ScratchBuffer< FloatType > &scratchBuffer, const std::vector< DynamicChannelMapping > &map, std::vector< FloatType * > &channels)
Definition juce_VST3Common.h:722
std::vector< FloatType * > channels
Definition juce_VST3Common.h:758
AudioBuffer< FloatType > getBlankBuffer(int usedChannels, int usedSamples)
Definition juce_VST3Common.h:743
AudioBuffer< FloatType > getMappedBuffer(Steinberg::Vst::ProcessData &data, const std::vector< DynamicChannelMapping > &inputMap, const std::vector< DynamicChannelMapping > &outputMap)
Definition juce_VST3Common.h:660
static void setUpInputChannels(Steinberg::Vst::ProcessData &data, size_t vstInputs, ScratchBuffer< FloatType > &scratchBuffer, const std::vector< DynamicChannelMapping > &map, std::vector< FloatType * > &channels)
Definition juce_VST3Common.h:685
void prepare(int numChannels, int blockSize)
Definition juce_VST3Common.h:654
ScratchBuffer< FloatType > scratchBuffer
Definition juce_VST3Common.h:759
Definition juce_VST3Common.h:779
auto & getData(detail::Tag< float >)
Definition juce_VST3Common.h:856
std::vector< DynamicChannelMapping > outputMap
Definition juce_VST3Common.h:891
AudioChannelSet getRequestedLayoutForInputBus(size_t bus) const
Definition juce_VST3Common.h:859
void updateActiveClientBuses(const AudioProcessor::BusesLayout &clientBuses)
Definition juce_VST3Common.h:831
AudioChannelSet getRequestedLayoutForOutputBus(size_t bus) const
Definition juce_VST3Common.h:864
auto & getData(detail::Tag< double >)
Definition juce_VST3Common.h:857
void updateFromProcessor(const AudioProcessor &processor)
Definition juce_VST3Common.h:781
void setOutputBusHostActive(size_t bus, bool state)
Definition juce_VST3Common.h:854
void prepare(int blockSize)
Definition juce_VST3Common.h:814
std::vector< DynamicChannelMapping > inputMap
Definition juce_VST3Common.h:890
const std::vector< DynamicChannelMapping > & getInputMap() const
Definition juce_VST3Common.h:869
ClientBufferMapperData< float > floatData
Definition juce_VST3Common.h:887
void setInputBusHostActive(size_t bus, bool state)
Definition juce_VST3Common.h:853
ClientBufferMapperData< double > doubleData
Definition juce_VST3Common.h:888
const std::vector< DynamicChannelMapping > & getOutputMap() const
Definition juce_VST3Common.h:870
static AudioChannelSet getRequestedLayoutForBus(const std::vector< DynamicChannelMapping > &map, size_t bus)
Definition juce_VST3Common.h:879
static void setHostActive(std::vector< DynamicChannelMapping > &map, size_t bus, bool state)
Definition juce_VST3Common.h:873
ClientRemappedBuffer(ClientBufferMapper &mapperIn, Steinberg::Vst::ProcessData &hostData)
Definition juce_VST3Common.h:912
ClientRemappedBuffer(ClientBufferMapperData< FloatType > &mapperData, const std::vector< DynamicChannelMapping > *inputMapIn, const std::vector< DynamicChannelMapping > *outputMapIn, Steinberg::Vst::ProcessData &hostData)
Definition juce_VST3Common.h:903
const std::vector< DynamicChannelMapping > * outputMap
Definition juce_VST3Common.h:983
void clearHostOutputBuses(size_t vstOutputs) const
Definition juce_VST3Common.h:967
Steinberg::Vst::ProcessData & data
Definition juce_VST3Common.h:984
~ClientRemappedBuffer()
Definition juce_VST3Common.h:919
AudioBuffer< FloatType > buffer
Definition juce_VST3Common.h:930
void copyToHostOutputBuses(size_t vstOutputs) const
Definition juce_VST3Common.h:933
void restart(int32 newFlags)
Definition juce_VST3Common.h:1643
void handleAsyncUpdate() override
Definition juce_VST3Common.h:1657
Listener & listener
Definition juce_VST3Common.h:1662
std::atomic< int32 > flags
Definition juce_VST3Common.h:1663
~ComponentRestarter() noexcept override
Definition juce_VST3Common.h:1638
ComponentRestarter(Listener &listenerIn)
Definition juce_VST3Common.h:1635
Definition juce_VST3Common.h:540
void setClientActive(bool active)
Definition juce_VST3Common.h:561
AudioChannelSet getAudioChannelSet() const
Definition juce_VST3Common.h:551
bool isHostActive() const
Definition juce_VST3Common.h:556
DynamicChannelMapping(const AudioChannelSet &channelSet, bool active)
Definition juce_VST3Common.h:542
DynamicChannelMapping(const AudioChannelSet &channelSet)
Definition juce_VST3Common.h:545
bool hostActive
Definition juce_VST3Common.h:566
int getJuceChannelForVst3Channel(int vst3Channel) const
Definition juce_VST3Common.h:552
void setHostActive(bool active)
Definition juce_VST3Common.h:560
DynamicChannelMapping(const AudioProcessor::Bus &bus)
Definition juce_VST3Common.h:548
size_t size() const
Definition juce_VST3Common.h:553
AudioChannelSet set
Definition juce_VST3Common.h:564
ChannelMapping map
Definition juce_VST3Common.h:565
bool isClientActive() const
Definition juce_VST3Common.h:558
Definition juce_FlagCache.h:130
Definition juce_VST3Common.h:998
auto & get(detail::Tag< float >)
Definition juce_VST3Common.h:1056
void prepare(std::vector< ChannelMapping > arrangements)
Definition juce_VST3Common.h:1001
auto & get(detail::Tag< double >)
Definition juce_VST3Common.h:1057
std::vector< Steinberg::Vst::AudioBusBuffers > busBuffers
Definition juce_VST3Common.h:1062
BusMap< double > doubleBusMap
Definition juce_VST3Common.h:1060
std::vector< Bus< FloatType > > BusMap
Definition juce_VST3Common.h:1031
static void assignRawPointer(Steinberg::Vst::AudioBusBuffers &vstBuffers, double **raw)
Definition juce_VST3Common.h:1034
std::vector< ChannelMapping > mappings
Definition juce_VST3Common.h:1063
static void assignRawPointer(Steinberg::Vst::AudioBusBuffers &vstBuffers, float **raw)
Definition juce_VST3Common.h:1033
std::vector< FloatType * > Bus
Definition juce_VST3Common.h:1028
BusMap< float > floatBusMap
Definition juce_VST3Common.h:1059
void associateBufferTo(Steinberg::Vst::AudioBusBuffers &vstBuffers, Bus< FloatType > &bus, AudioBuffer< FloatType > &buffer, const ChannelMapping &busMap, int channelStartOffset) const
Definition juce_VST3Common.h:1037
Steinberg::Vst::AudioBusBuffers * getVst3LayoutForJuceBuffer(AudioBuffer< FloatType > &source)
Definition juce_VST3Common.h:1012
Definition juce_VST3Common.h:88
bool isOk() const noexcept
Definition juce_VST3Common.h:97
void(* addRefFn)(void *)
Definition juce_VST3Common.h:114
QueryInterfaceResult result
Definition juce_VST3Common.h:113
static void doAddRef(void *obj)
Definition juce_VST3Common.h:111
InterfaceResultWithDeferredAddRef(Steinberg::tresult resultIn, Ptr *ptrIn)
Definition juce_VST3Common.h:93
Steinberg::tresult extract(void **obj) const
Definition juce_VST3Common.h:99
InterfaceResultWithDeferredAddRef()=default
static MessageManager * getInstance()
Definition juce_MessageManager.cpp:47
Definition juce_MidiBuffer.h:145
Definition juce_VST3Common.h:1173
static Steinberg::int16 createSafeChannel(int channel) noexcept
Definition juce_VST3Common.h:1324
static Steinberg::int16 createSafeNote(int note) noexcept
Definition juce_VST3Common.h:1327
static Steinberg::Vst::Event createControllerEvent(const MidiMessage &msg) noexcept
Definition juce_VST3Common.h:1397
static void hostToPluginEventList(Steinberg::Vst::IEventList &result, MidiBuffer &midiBuffer, StoredMidiMapping &mapping, Callback &&callback)
Definition juce_VST3Common.h:1228
JUCE_DECLARE_VST3_COM_REF_METHODS JUCE_DECLARE_VST3_COM_QUERY_METHODS void clear()
Definition juce_VST3Common.h:1182
static Optional< MidiMessage > toMidiMessage(const Steinberg::Vst::LegacyMIDICCOutEvent &e)
Definition juce_VST3Common.h:1480
Atomic< int > refCount
Definition juce_VST3Common.h:1322
static void toEventList(Steinberg::Vst::IEventList &result, MidiBuffer &midiBuffer, StoredMidiMapping *midiMapping, Callback &&callback)
Definition juce_VST3Common.h:1304
virtual ~MidiEventList()=default
static void toMidiBuffer(MidiBuffer &result, Steinberg::Vst::IEventList &eventList)
Definition juce_VST3Common.h:1211
static bool sendMappedParameter(const MidiMessage &msg, StoredMidiMapping *midiMapping, Callback &&callback)
Definition juce_VST3Common.h:1255
Steinberg::tresult PLUGIN_API addEvent(Steinberg::Vst::Event &e) override
Definition juce_VST3Common.h:1204
static Steinberg::Vst::Event createPolyPressureEvent(const MidiMessage &msg)
Definition juce_VST3Common.h:1379
static int createSafeNote(Steinberg::int16 note) noexcept
Definition juce_VST3Common.h:1328
static Steinberg::Vst::Event createChannelPressureEvent(const MidiMessage &msg) noexcept
Definition juce_VST3Common.h:1390
static int denormaliseToMidiValue(float value) noexcept
Definition juce_VST3Common.h:1331
static Steinberg::Vst::Event createNoteOffEvent(const MidiMessage &msg) noexcept
Definition juce_VST3Common.h:1346
static Steinberg::Vst::Event createPitchWheelEvent(const MidiMessage &msg) noexcept
Definition juce_VST3Common.h:1412
Array< Steinberg::Vst::Event, CriticalSection > events
Definition juce_VST3Common.h:1321
static Steinberg::Vst::Event createProgramChangeEvent(const MidiMessage &msg) noexcept
Definition juce_VST3Common.h:1420
static Steinberg::Vst::Event createLegacyMIDIEvent(int channel, int controlNumber, int value, int value2=0)
Definition juce_VST3Common.h:1368
static Optional< Vst3MidiControlEvent > toVst3ControlEvent(const MidiMessage &msg)
Definition juce_VST3Common.h:1564
static Steinberg::Vst::Event createCtrlQuarterFrameEvent(const MidiMessage &msg) noexcept
Definition juce_VST3Common.h:1427
static Steinberg::Vst::Event createNoteOnEvent(const MidiMessage &msg) noexcept
Definition juce_VST3Common.h:1333
static Optional< Steinberg::Vst::Event > createVstEvent(const MidiMessage &msg, const uint8 *midiEventData, EventConversionKind kind) noexcept
Definition juce_VST3Common.h:1434
static void pluginToHostEventList(Steinberg::Vst::IEventList &result, MidiBuffer &midiBuffer)
Definition juce_VST3Common.h:1236
EventConversionKind
Definition juce_VST3Common.h:1243
@ pluginToHost
Definition juce_VST3Common.h:1251
@ hostToPlugin
Definition juce_VST3Common.h:1247
static int createSafeChannel(Steinberg::int16 channel) noexcept
Definition juce_VST3Common.h:1325
static Steinberg::Vst::Event createCtrlPolyPressureEvent(const MidiMessage &msg) noexcept
Definition juce_VST3Common.h:1404
static Steinberg::Vst::Event createSysExEvent(const MidiMessage &msg, const uint8 *midiEventData) noexcept
Definition juce_VST3Common.h:1358
Steinberg::tresult PLUGIN_API getEvent(Steinberg::int32 index, Steinberg::Vst::Event &e) override
Definition juce_VST3Common.h:1193
static void processMidiMessage(Steinberg::Vst::IEventList &result, const MidiMessageMetadata metadata, StoredMidiMapping *midiMapping, Callback &&callback)
Definition juce_VST3Common.h:1277
static Optional< MidiMessage > toMidiMessage(const Steinberg::Vst::Event &e)
Definition juce_VST3Common.h:1517
static float normaliseMidiValue(int value) noexcept
Definition juce_VST3Common.h:1330
Steinberg::int32 PLUGIN_API getEventCount() override
Definition juce_VST3Common.h:1187
Definition juce_MidiMessage.h:35
Definition juce_Optional.h:74
Definition juce_VST3Common.h:58
Steinberg::tresult extract(void **obj) const
Definition juce_VST3Common.h:67
bool isOk() const noexcept
Definition juce_VST3Common.h:65
QueryInterfaceResult(Steinberg::tresult resultIn, void *ptrIn)
Definition juce_VST3Common.h:62
Steinberg::tresult result
Definition juce_VST3Common.h:74
void * ptr
Definition juce_VST3Common.h:75
QueryInterfaceResult()=default
Definition juce_VST3Common.h:589
void clear()
Definition juce_VST3Common.h:596
void setSize(int numChannels, int blockSize)
Definition juce_VST3Common.h:591
AudioBuffer< FloatType > buffer
Definition juce_VST3Common.h:603
auto * getNextChannelBuffer()
Definition juce_VST3Common.h:598
int channelCounter
Definition juce_VST3Common.h:604
auto getArrayOfWritePointers()
Definition juce_VST3Common.h:600
Definition juce_VST3Common.h:1121
StoredMidiMapping()
Definition juce_VST3Common.h:1123
static void storeControllers(Steinberg::Vst::IMidiMapping &mapping, Controllers &channel, size_t channelIndex)
Definition juce_VST3Common.h:1149
static Steinberg::Vst::ParamID getSingleMapping(Steinberg::Vst::IMidiMapping &mapping, size_t channelIndex, size_t controllerIndex)
Definition juce_VST3Common.h:1155
Steinberg::Vst::ParamID getMapping(Steinberg::int16 channel, Steinberg::Vst::CtrlNumber controller) const noexcept
Definition juce_VST3Common.h:1136
void storeMappings(Steinberg::Vst::IMidiMapping &mapping)
Definition juce_VST3Common.h:1129
std::array< Controllers, 16 > Channels
Definition juce_VST3Common.h:1147
Channels channels
Definition juce_VST3Common.h:1168
std::vector< Steinberg::Vst::ParamID > Controllers
Definition juce_VST3Common.h:1144
ObjectType * source
Definition juce_VST3Common.h:1107
VSTComSmartPtr(ObjectType *object, bool autoAddRef=true) noexcept
Definition juce_VST3Common.h:1072
ObjectType * get() const noexcept
Definition juce_VST3Common.h:1077
~VSTComSmartPtr()
Definition juce_VST3Common.h:1074
VSTComSmartPtr(const VSTComSmartPtr &other) noexcept
Definition juce_VST3Common.h:1073
VSTComSmartPtr() noexcept
Definition juce_VST3Common.h:1071
ObjectType & operator*() const noexcept
Definition juce_VST3Common.h:1078
bool loadFrom(Steinberg::FUnknown *o)
Definition juce_VST3Common.h:1093
bool loadFrom(Steinberg::IPluginFactory *factory, const Steinberg::TUID &uuid)
Definition juce_VST3Common.h:1099
ObjectType * operator->() const noexcept
Definition juce_VST3Common.h:1079
* e
Definition inflate.c:1404
register unsigned j
Definition inflate.c:1576
register unsigned i
Definition inflate.c:1575
unsigned x[BMAX+1]
Definition inflate.c:1586
static PuglViewHint int value
Definition pugl.h:1708
const Speaker kSpeakerPr
Proximity Right (Pr).
Definition vstspeaker.h:90
const Speaker kSpeakerCs
Center of Surround (Cs) - Back Center - Surround (S).
Definition vstspeaker.h:50
const Speaker kSpeakerLfe
Subbass (Lfe).
Definition vstspeaker.h:44
const Speaker kSpeakerTsl
Top Side Left (Tsl).
Definition vstspeaker.h:80
const Speaker kSpeakerACN0
Ambisonic ACN 0.
Definition vstspeaker.h:63
const Speaker kSpeakerR
Right (R).
Definition vstspeaker.h:42
const Speaker kSpeakerBfr
Bottom Front Right (Bfr).
Definition vstspeaker.h:87
const Speaker kSpeakerRcs
Right of Center Surround (Rcs) - Back Right Center.
Definition vstspeaker.h:83
const Speaker kSpeakerACN2
Ambisonic ACN 2.
Definition vstspeaker.h:65
const Speaker kSpeakerACN1
Ambisonic ACN 1.
Definition vstspeaker.h:64
const Speaker kSpeakerTrc
Top Rear/Back Center (Trc).
Definition vstspeaker.h:58
const Speaker kSpeakerACN14
Ambisonic ACN 14.
Definition vstspeaker.h:77
const Speaker kSpeakerRc
Right of Center (Rc) - Front Right Center.
Definition vstspeaker.h:48
const Speaker kSpeakerBrr
Bottom Rear Right (Brr).
Definition vstspeaker.h:96
const Speaker kSpeakerM
Mono (M).
Definition vstspeaker.h:61
const Speaker kSpeakerL
Left (L).
Definition vstspeaker.h:41
const Speaker kSpeakerACN8
Ambisonic ACN 8.
Definition vstspeaker.h:71
const Speaker kSpeakerSl
Side Left (Sl).
Definition vstspeaker.h:51
const Speaker kSpeakerLs
Left Surround (Ls).
Definition vstspeaker.h:45
const Speaker kSpeakerBrc
Bottom Rear Center (Brc).
Definition vstspeaker.h:95
const Speaker kSpeakerACN11
Ambisonic ACN 11.
Definition vstspeaker.h:74
const SpeakerArrangement kEmpty
empty arrangement
Definition vstspeaker.h:108
const Speaker kSpeakerACN13
Ambisonic ACN 13.
Definition vstspeaker.h:76
const Speaker kSpeakerTsr
Top Side Right (Tsr).
Definition vstspeaker.h:81
const Speaker kSpeakerACN4
Ambisonic ACN 4.
Definition vstspeaker.h:67
const Speaker kSpeakerSr
Side Right (Sr).
Definition vstspeaker.h:52
const Speaker kSpeakerLcs
Left of Center Surround (Lcs) - Back Left Center.
Definition vstspeaker.h:82
const Speaker kSpeakerBsl
Bottom Side Left (Bsl).
Definition vstspeaker.h:92
const Speaker kSpeakerACN5
Ambisonic ACN 5.
Definition vstspeaker.h:68
const Speaker kSpeakerTfr
Top Front Right (Tfr).
Definition vstspeaker.h:56
const Speaker kSpeakerTrl
Top Rear/Back Left (Trl).
Definition vstspeaker.h:57
const Speaker kSpeakerACN6
Ambisonic ACN 6.
Definition vstspeaker.h:69
const Speaker kSpeakerLfe2
Subbass 2 (Lfe2).
Definition vstspeaker.h:60
int32 getChannelCount(SpeakerArrangement arr)
Definition vstspeaker.h:480
const Speaker kSpeakerRs
Right Surround (Rs).
Definition vstspeaker.h:46
const Speaker kSpeakerC
Center (C).
Definition vstspeaker.h:43
const Speaker kSpeakerBrl
Bottom Rear Left (Brl).
Definition vstspeaker.h:94
const Speaker kSpeakerBfc
Bottom Front Center (Bfc).
Definition vstspeaker.h:86
const Speaker kSpeakerACN3
Ambisonic ACN 3.
Definition vstspeaker.h:66
const Speaker kSpeakerBsr
Bottom Side Right (Bsr).
Definition vstspeaker.h:93
const Speaker kSpeakerACN12
Ambisonic ACN 12.
Definition vstspeaker.h:75
const Speaker kSpeakerACN15
Ambisonic ACN 15.
Definition vstspeaker.h:78
const Speaker kSpeakerACN7
Ambisonic ACN 7.
Definition vstspeaker.h:70
const Speaker kSpeakerACN9
Ambisonic ACN 9.
Definition vstspeaker.h:72
const Speaker kSpeakerLc
Left of Center (Lc) - Front Left Center.
Definition vstspeaker.h:47
const Speaker kSpeakerTfc
Top Front Center (Tfc).
Definition vstspeaker.h:55
const Speaker kSpeakerTfl
Top Front Left (Tfl).
Definition vstspeaker.h:54
const Speaker kSpeakerTc
Top Center Over-head, Top Middle (Tc).
Definition vstspeaker.h:53
const Speaker kSpeakerBfl
Bottom Front Left (Bfl).
Definition vstspeaker.h:85
const Speaker kSpeakerTrr
Top Rear/Back Right (Trr).
Definition vstspeaker.h:59
const Speaker kSpeakerPl
Proximity Left (Pl).
Definition vstspeaker.h:89
const Speaker kSpeakerACN10
Ambisonic ACN 10.
Definition vstspeaker.h:73
JSAMPIMAGE data
Definition jpeglib.h:945
#define JUCE_END_NO_SANITIZE
Definition juce_CompilerWarnings.h:218
#define JUCE_BEGIN_NO_SANITIZE(warnings)
Definition juce_CompilerWarnings.h:217
#define JUCE_DECLARE_VST3_COM_REF_METHODS
Definition juce_VST3Common.h:36
#define JUCE_DECLARE_VST3_COM_QUERY_METHODS
Definition juce_VST3Common.h:40
unsigned int uint32_t
Definition mid.cpp:100
const char * msg
Definition missing_descriptor.c:20
Definition vstspeaker.h:103
const SpeakerArrangement k71_6
Definition vstspeaker.h:246
const SpeakerArrangement k51
Definition vstspeaker.h:140
const SpeakerArrangement k70Cine
Definition vstspeaker.h:150
const SpeakerArrangement k71Cine
Definition vstspeaker.h:152
const SpeakerArrangement kMono
M.
Definition vstspeaker.h:109
const SpeakerArrangement k70Music
Definition vstspeaker.h:155
const SpeakerArrangement k40Cine
Definition vstspeaker.h:130
Speaker getSpeaker(const SpeakerArrangement &arr, int32 index)
Definition vstspeaker.h:515
const SpeakerArrangement k61Cine
Definition vstspeaker.h:144
const SpeakerArrangement k60Music
Definition vstspeaker.h:146
const SpeakerArrangement k50_4
Definition vstspeaker.h:216
const SpeakerArrangement k70_2
Definition vstspeaker.h:223
const SpeakerArrangement k90_6
Definition vstspeaker.h:261
const SpeakerArrangement k51_4
Definition vstspeaker.h:220
const SpeakerArrangement k71_4
Definition vstspeaker.h:236
const SpeakerArrangement k40Music
Definition vstspeaker.h:134
const SpeakerArrangement k30Music
Definition vstspeaker.h:126
const SpeakerArrangement k70_6
Definition vstspeaker.h:241
const SpeakerArrangement kStereo
L R.
Definition vstspeaker.h:110
const SpeakerArrangement k71Music
Definition vstspeaker.h:157
const SpeakerArrangement k60Cine
Definition vstspeaker.h:142
const SpeakerArrangement k50
Definition vstspeaker.h:138
const SpeakerArrangement k70_4
Definition vstspeaker.h:232
const SpeakerArrangement k71_2
Definition vstspeaker.h:227
const SpeakerArrangement k61Music
Definition vstspeaker.h:148
const SpeakerArrangement k30Cine
Definition vstspeaker.h:122
const SpeakerArrangement k91_6
Definition vstspeaker.h:266
Definition ivstattributes.h:28
@ kOutput
output bus
Definition ivstcomponent.h:76
@ kInput
input bus
Definition ivstcomponent.h:75
uint64 Speaker
Bit for one speaker.
Definition vsttypes.h:99
uint32 ParamID
parameter identifier
Definition vsttypes.h:75
TChar String128[128]
128 character UTF-16 string
Definition vsttypes.h:63
char16 TChar
UTF-16 character.
Definition vsttypes.h:62
double ParamValue
parameter value type
Definition vsttypes.h:74
int16 CtrlNumber
MIDI controller number (see ControllerNumbers for allowed values).
Definition vsttypes.h:77
static const ParamID kNoParamId
default for uninitialized parameter ID
Definition vsttypes.h:85
uint64 SpeakerArrangement
Bitset of speakers.
Definition vsttypes.h:98
@ kPitchBend
Pitch Bend Change.
Definition ivstmidicontrollers.h:105
@ kCtrlProgramChange
Program Change (use LegacyMIDICCOutEvent.value only).
Definition ivstmidicontrollers.h:110
@ kCountCtrlNumber
Count of Controller Number.
Definition ivstmidicontrollers.h:107
@ kCtrlPolyPressure
Definition ivstmidicontrollers.h:111
@ kCtrlQuarterFrame
LegacyMIDICCOutEvent.value2 for pressure).
Definition ivstmidicontrollers.h:113
@ kAfterTouch
After Touch (associated to Channel Pressure).
Definition ivstmidicontrollers.h:104
short int16
Definition ftypes.h:43
UStringBuffer< 128 > UString128
128 character UTF-16 string
Definition ustring.h:108
int16 char16
Definition ftypes.h:101
int int32
Definition ftypes.h:50
const FIDString kPlatformTypeNSView
NSView pointer. (Mac OS X).
Definition iplugview.h:70
char char8
Definition ftypes.h:93
int8 TUID[16]
plain UID type
Definition funknown.h:210
const char8 * FIDString
Definition ftypes.h:117
char int8
Definition ftypes.h:39
@ kResultOk
Definition funknown.h:193
@ kResultFalse
Definition funknown.h:195
@ kResultTrue
Definition funknown.h:194
UStringBuffer< 256 > UString256
256 character UTF-16 string
Definition ustring.h:109
unsigned char uint8
Definition ftypes.h:40
const FIDString kPlatformTypeX11EmbedWindowID
X11 Window ID. (X11).
Definition iplugview.h:79
const FIDString kPlatformTypeHWND
HWND handle. (Microsoft Windows).
Definition iplugview.h:62
int32 tresult
Definition ftypes.h:76
Definition juce_FloatVectorOperations.h:143
AudioChannelSet X
Definition juce_VST3Common.h:360
const LayoutPair layoutTable[]
Definition juce_VST3Common.h:368
Definition carla_juce.cpp:31
static int countUsedClientChannels(const std::vector< DynamicChannelMapping > &inputMap, const std::vector< DynamicChannelMapping > &outputMap)
Definition juce_VST3Common.h:573
static Steinberg::Vst::SpeakerArrangement getVst3SpeakerArrangement(const AudioChannelSet &channels) noexcept
Definition juce_VST3Common.h:453
InterfaceResultWithDeferredAddRef testForMultiple(ToTest &, const Steinberg::TUID)
Definition juce_VST3Common.h:140
static int countValidBuses(Steinberg::Vst::AudioBusBuffers *buffers, int32 num)
Definition juce_VST3Common.h:608
static AudioChannelSet::ChannelType getChannelType(Steinberg::Vst::SpeakerArrangement arr, Steinberg::Vst::Speaker type) noexcept
Definition juce_VST3Common.h:287
bool doUIDsMatch(const Steinberg::TUID a, const Steinberg::TUID b) noexcept
Definition juce_VST3Common.h:48
InterfaceResultWithDeferredAddRef testFor(ToTest &toTest, const Steinberg::TUID targetIID, SharedBase< CommonClassType, SourceClassType >)
Definition juce_VST3Common.h:121
constexpr Type jmin(Type a, Type b)
Definition juce_MathsFunctions.h:106
juce::String toString(const Steinberg::char8 *string) noexcept
Definition juce_VST3Common.h:159
void toString128(Steinberg::Vst::String128 result, const char *source)
Definition juce_VST3Common.h:168
unsigned int uint32
Definition juce_MathsFunctions.h:45
signed short int16
Definition juce_MathsFunctions.h:39
Type jlimit(Type lowerLimit, Type upperLimit, Type valueToConstrain) noexcept
Definition juce_MathsFunctions.h:262
long long int64
Definition juce_MathsFunctions.h:54
AudioChannelSet getChannelSetForSpeakerArrangement(Steinberg::Vst::SpeakerArrangement arr) noexcept
Definition juce_VST3Common.h:478
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
static Steinberg::Vst::Speaker getSpeakerType(const AudioChannelSet &set, AudioChannelSet::ChannelType type) noexcept
Definition juce_VST3Common.h:200
static bool validateLayouts(Iterator first, Iterator last, const std::vector< DynamicChannelMapping > &map)
Definition juce_VST3Common.h:617
int countNumberOfBits(uint32 n) noexcept
Definition juce_MathsFunctions.h:551
static Array< AudioChannelSet::ChannelType > getSpeakerOrder(Steinberg::Vst::SpeakerArrangement arr)
Definition juce_VST3Common.h:426
signed int int32
Definition juce_MathsFunctions.h:43
bool isPositiveAndBelow(Type1 valueToTest, Type2 upperLimit) noexcept
Definition juce_MathsFunctions.h:279
static Steinberg::Vst::SpeakerArrangement getArrangementForBus(Steinberg::Vst::IAudioProcessor *processor, bool isInput, int busIndex)
Definition juce_VST3Common.h:188
bool isLayoutTableValid()
Definition juce_VST3Common.h:406
auto & getAudioBusPointer(detail::Tag< float >, Steinberg::Vst::AudioBusBuffers &data)
Definition juce_VST3Common.h:570
unsigned char uint8
Definition juce_MathsFunctions.h:37
int roundToInt(const FloatType value) noexcept
Definition juce_MathsFunctions.h:465
jack_client_t * client
Definition juce_linux_JackAudio.cpp:57
constexpr int numElementsInArray(Type(&)[N]) noexcept
Definition juce_MathsFunctions.h:344
Definition juce_Uuid.h:141
#define true
Definition ordinals.h:82
Definition ivstaudioprocessor.h:192
int32 numChannels
number of audio channels in bus
Definition ivstaudioprocessor.h:196
Sample64 ** channelBuffers64
sample buffers to process with 64-bit precision
Definition ivstaudioprocessor.h:201
uint64 silenceFlags
Bitset of silence state per channel.
Definition ivstaudioprocessor.h:197
Sample32 ** channelBuffers32
sample buffers to process with 32-bit precision
Definition ivstaudioprocessor.h:200
@ kMidiSysEx
for MIDI system exclusive message
Definition ivstevents.h:79
Definition ivstevents.h:143
@ kScaleEvent
is ScaleEvent
Definition ivstevents.h:168
@ kNoteExpressionValueEvent
is NoteExpressionValueEvent
Definition ivstevents.h:165
@ kPolyPressureEvent
is PolyPressureEvent
Definition ivstevents.h:164
@ kNoteExpressionTextEvent
is NoteExpressionTextEvent
Definition ivstevents.h:166
@ kNoteOffEvent
is NoteOffEvent
Definition ivstevents.h:162
@ kChordEvent
is ChordEvent
Definition ivstevents.h:167
@ kNoteOnEvent
is NoteOnEvent
Definition ivstevents.h:161
@ kLegacyMIDICCOutEvent
is LegacyMIDICCOutEvent
Definition ivstevents.h:169
@ kDataEvent
is DataEvent
Definition ivstevents.h:163
Definition ivstevents.h:130
Definition ivstaudioprocessor.h:214
Definition juce_Atomic.h:42
Definition juce_AudioProcessor.h:311
Array< AudioChannelSet > outputBuses
Definition juce_AudioProcessor.h:316
Array< AudioChannelSet > inputBuses
Definition juce_AudioProcessor.h:313
Definition juce_VST3Common.h:497
static std::vector< int > makeChannelIndices(const AudioChannelSet &juceArrangement)
Definition juce_VST3Common.h:523
bool isActive() const
Definition juce_VST3Common.h:512
void setActive(bool x)
Definition juce_VST3Common.h:511
ChannelMapping(const AudioChannelSet &layout, bool activeIn)
Definition juce_VST3Common.h:498
ChannelMapping(const AudioChannelSet &layout)
Definition juce_VST3Common.h:501
size_t size() const
Definition juce_VST3Common.h:509
int getJuceChannelForVst3Channel(int vst3Channel) const
Definition juce_VST3Common.h:507
std::vector< int > indices
Definition juce_VST3Common.h:535
ChannelMapping(const AudioProcessor::Bus &bus)
Definition juce_VST3Common.h:504
bool active
Definition juce_VST3Common.h:536
Definition juce_VST3Common.h:1630
virtual void restartComponentOnMessageThread(int32 flags)=0
virtual ~Listener()=default
Definition juce_VST3Common.h:1559
Steinberg::Vst::ParamValue paramValue
Definition juce_VST3Common.h:1561
Steinberg::Vst::CtrlNumber controllerNumber
Definition juce_VST3Common.h:1560
Definition juce_VST3Common.h:118
Definition juce_VST3Common.h:117
Definition juce_VST3Common.h:354
std::initializer_list< AudioChannelSet::ChannelType > channelOrder
Definition juce_VST3Common.h:356
Steinberg::Vst::SpeakerArrangement arrangement
Definition juce_VST3Common.h:355
Definition juce_Rectangle.h:33
RECT const char void(* callback)(const char *droppath))) SWELL_API_DEFINE(BOOL
Definition swell-functions.h:1004
uch * p
Definition crypt.c:594
int result
Definition process.c:1455
typedef int(UZ_EXP MsgFn)()
#define void
Definition unzip.h:396
#define const
Definition zconf.h:137