53 #if ! JUCE_AUDIOPROCESSOR_NO_GUI
62 #if JUCE_DEBUG && ! JUCE_DISABLE_AUDIOPROCESSOR_BEGIN_END_GESTURE_CHECKING
65 jassert (changingParams.countNumberOfSetBits() == 0);
102 auto busIndex = numBuses - 1;
138 for (
int i = 0;
i < numIns; ++
i)
139 if (
request.getNumChannels (
true,
i) == 0)
140 request.getChannelSet (
true,
i) = current.getChannelSet (
true,
i);
142 for (
int i = 0;
i < numOuts; ++
i)
143 if (
request.getNumChannels (
false,
i) == 0)
144 request.getChannelSet (
false,
i) = current.getChannelSet (
false,
i);
149 for (
int dir = 0; dir < 2; ++dir)
151 const bool isInput = (dir != 0);
153 for (
int i = 0;
i < (isInput ? numIns : numOuts); ++
i)
155 auto& bus = *
getBus (isInput,
i);
156 auto& set =
request.getChannelSet (isInput,
i);
158 if (! bus.isEnabled())
160 if (! set.isDisabled())
161 bus.lastLayout = set;
184 return bus->getCurrentLayout();
191 if (
auto* bus =
getBus (isInputBus, busIndex))
193 auto layouts = bus->getBusesLayoutForLayoutChangeOfBus (layout);
195 if (layouts.getChannelSet (isInputBus, busIndex) == layout)
234 actualLayouts = desiredLayout;
238 auto originalState = actualLayouts;
239 auto currentState = originalState;
240 auto bestSupported = currentState;
242 for (
int dir = 0; dir < 2; ++dir)
244 const bool isInput = (dir > 0);
246 auto& currentLayouts = (isInput ? currentState.inputBuses : currentState.outputBuses);
247 auto& bestLayouts = (isInput ? bestSupported.inputBuses : bestSupported.outputBuses);
249 auto& originalLayouts = (isInput ? originalState.inputBuses : originalState.outputBuses);
251 for (
int busIndex = 0; busIndex < requestedLayouts.size(); ++busIndex)
253 auto& best = bestLayouts .getReference (busIndex);
254 auto& requested = requestedLayouts.getReference (busIndex);
255 auto& original = originalLayouts .getReference (busIndex);
258 if (original == requested)
261 currentState = bestSupported;
262 auto& current = currentLayouts .getReference (busIndex);
269 bestSupported = currentState;
274 const bool oppositeDirection = ! isInput;
278 auto& oppositeLayout = (oppositeDirection ? currentState.inputBuses : currentState.outputBuses).getReference (busIndex);
279 oppositeLayout = requested;
283 bestSupported = currentState;
288 oppositeLayout =
getBus (oppositeDirection, busIndex)->getDefaultLayout();
292 bestSupported = currentState;
304 bestSupported = allTheSame;
309 auto distance = std::abs (best.size() - requested.size());
310 auto& defaultLayout =
getBus (isInput, busIndex)->getDefaultLayout();
312 if (std::abs (defaultLayout.size() - requested.size()) < distance)
314 current = defaultLayout;
317 bestSupported = currentState;
322 actualLayouts = bestSupported;
334 listeners.addIfNotAlreadyThere (newListener);
340 listeners.removeFirstMatchingValue (listenerToRemove);
386 for (
int i = 0;
i < ioBus.size() &&
i < busIndex; ++
i)
397 for (busIndex = 0; busIndex < numBuses && absoluteChannelIndex >= (numChannels =
getChannelLayoutOfBus (isInput, busIndex).size()); ++busIndex)
398 absoluteChannelIndex -= numChannels;
400 return busIndex >= numBuses ? -1 : absoluteChannelIndex;
429 l->audioProcessorChanged (
this, details);
442 #if JucePlugin_Build_AU
451 #if JUCE_DEBUG && ! JUCE_DISABLE_CAUTIOUS_PARAMETER_ID_CHECKING
454 constexpr auto maximumSafeAAXParameterIdLength = 31;
456 const auto paramID = withID->paramID;
465 jassertquiet (paramID.length() <= maximumSafeAAXParameterIdLength);
476 jassertquiet (trimmedParamIDs.insert (paramID.substring (0, maximumSafeAAXParameterIdLength)).second);
488 auto insertResult = paramIDs.insert (withID->paramID);
502 groups.add (&newGroup);
504 for (
auto*
group : groups)
506 auto insertResult = groupIDs.insert (
group->getID());
520 parameterTree.addChild (std::unique_ptr<AudioProcessorParameter> (param));
541 p->parameterIndex =
i;
565 p->parameterIndex =
i;
586template <
typename floatType>
597 buffer.clear (ch, 0, buffer.getNumSamples());
660 if (
config[0].inChannels > 0)
663 if (
config[0].outChannels > 0)
672 auto numChannelConfigs = legacyLayouts.
size();
673 jassert (numChannelConfigs > 0);
675 bool hasInputs =
false, hasOutputs =
false;
677 for (
int i = 0;
i < numChannelConfigs; ++
i)
679 if (legacyLayouts[
i].inChannels > 0)
686 for (
int i = 0;
i < numChannelConfigs; ++
i)
688 if (legacyLayouts[
i].outChannels > 0)
695 auto nearest = layouts;
696 nearest.
inputBuses .resize (hasInputs ? 1 : 0);
697 nearest.outputBuses.resize (hasOutputs ? 1 : 0);
699 auto* inBus = (hasInputs ? &nearest.inputBuses. getReference (0) :
nullptr);
700 auto* outBus = (hasOutputs ? &nearest.outputBuses.getReference (0) :
nullptr);
702 auto inNumChannelsRequested =
static_cast<int16> (inBus !=
nullptr ? inBus->size() : 0);
703 auto outNumChannelsRequested =
static_cast<int16> (outBus !=
nullptr ? outBus->size() : 0);
705 auto distance = std::numeric_limits<int32>::max();
706 int bestConfiguration = 0;
708 for (
int i = 0;
i < numChannelConfigs; ++
i)
711 auto outChannels = legacyLayouts.
getReference (
i).outChannels;
713 auto channelDifference = ((std::abs (inChannels - inNumChannelsRequested) & 0xffff) << 16)
714 | ((std::abs (outChannels - outNumChannelsRequested) & 0xffff) << 0);
716 if (channelDifference < distance)
718 distance = channelDifference;
719 bestConfiguration =
i;
727 auto inChannels = legacyLayouts.
getReference (bestConfiguration).inChannels;
728 auto outChannels = legacyLayouts.
getReference (bestConfiguration).outChannels;
734 if (inBus !=
nullptr)
737 else if (inChannels == currentInLayout.
size()) *inBus = currentInLayout;
738 else if (inChannels == currentOutLayout.size()) *inBus = currentOutLayout;
742 if (outBus !=
nullptr)
745 else if (outChannels == currentOutLayout.size()) *outBus = currentOutLayout;
746 else if (outChannels == currentInLayout .
size()) *outBus = currentInLayout;
761 return channelLayouts.
contains (mainLayout);
769 for (
int busIndex = 1; busIndex < layouts.inputBuses.size(); ++busIndex)
772 for (
int busIndex = 1; busIndex < layouts.outputBuses.size(); ++busIndex)
808 int newNumberOfIns = 0, newNumberOfOuts = 0;
810 for (
int busIndex = 0; busIndex < numInputBuses; ++busIndex)
812 auto& bus = *
getBus (
true, busIndex);
816 if (! set.isDisabled())
817 bus.lastLayout = set;
819 newNumberOfIns += set.
size();
822 for (
int busIndex = 0; busIndex < numOutputBuses; ++busIndex)
824 auto& bus = *
getBus (
false, busIndex);
828 if (! set.isDisabled())
829 bus.lastLayout = set;
831 newNumberOfOuts += set.
size();
834 const bool channelNumChanged = (oldNumberOfIns != newNumberOfIns || oldNumberOfOuts != newNumberOfOuts);
845 for (
int dir = 0; dir < 2; ++dir)
847 const bool isInput = (dir == 0);
848 auto num = (isInput ? numInputBuses : numOutputBuses);
850 for (
int i = 0;
i < num; ++
i)
851 if (
auto* bus =
getBus (isInput,
i))
852 bus->updateChannelCount();
859 for (
auto* bus : buses)
860 n += bus->getNumberOfChannels();
870 if (busNumberChanged)
873 if (channelNumChanged)
879#if ! JUCE_AUDIOPROCESSOR_NO_GUI
907 jassert (ed->getWidth() > 0 && ed->getHeight() > 0);
957 if (stringLength > 0)
959 jmin ((sizeInBytes - 8), stringLength)));
968 if ( isAdding && !
canAddBus (isInput))
return false;
969 if (! isAdding && !
canRemoveBus (isInput))
return false;
1017 return owner.setChannelLayoutOfBus (di.isInput, di.index, busLayout);
1027 if (isLayoutSupported (set))
1036 return isLayoutSupported (set);
1051 if (! namedSet.isDisabled() && owner.setChannelLayoutOfBus (di.isInput, di.index, namedSet))
1067 for (
int ch =
limit; ch > 0; --ch)
1079 if (ioLayout !=
nullptr)
1081 if (!
owner.checkBusesLayoutSupported (*ioLayout))
1083 *ioLayout =
owner.getBusesLayout();
1090 auto currentLayout = (ioLayout !=
nullptr ? *ioLayout :
owner.getBusesLayout());
1091 auto& actualBuses = (di.isInput ? currentLayout.inputBuses : currentLayout.outputBuses);
1093 if (actualBuses.getReference (di.index) == set)
1096 auto desiredLayout = currentLayout;
1098 (di.isInput ? desiredLayout.inputBuses
1099 : desiredLayout.outputBuses).getReference (di.index) = set;
1101 owner.getNextBestLayout (desiredLayout, currentLayout);
1103 if (ioLayout !=
nullptr)
1104 *ioLayout = currentLayout;
1109 && currentLayout.outputBuses.size() ==
owner.getBusCount (
false));
1111 return actualBuses.getReference (di.index) == set;
1147 auto layouts =
owner.getBusesLayout();
1155 return owner.getChannelIndexInProcessBlockBuffer (di.isInput, di.index, channelIndex);
1180 bool isActivatedByDefault)
const
1183 retval.addBus (
true,
name, dfltLayout, isActivatedByDefault);
1189 bool isActivatedByDefault)
const
1192 retval.addBus (
false,
name, dfltLayout, isActivatedByDefault);
1199 const bool idForAudioSuite)
const
1201 int uniqueFormatId = 0;
1203 for (
int dir = 0; dir < 2; ++dir)
1205 const bool isInput = (dir == 0);
1206 auto& set = (isInput ? mainInputLayout : mainOutputLayout);
1207 int aaxFormatIndex = 0;
1232 const auto index = (
int) std::distance (std::begin (sets), std::find (std::begin (sets), std::end (sets), set));
1235 aaxFormatIndex = index;
1239 uniqueFormatId = (uniqueFormatId << 8) | aaxFormatIndex;
1242 return (idForAudioSuite ? 0x6a796161 : 0x6a636161 ) + uniqueFormatId;
1271 param->setValueNotifyingHost (newValue);
1284 param->sendValueChangedMessageToListeners (newValue);
1292 l->audioProcessorParameterChanged (
this, parameterIndex, newValue);
1305 param->beginChangeGesture();
1311 #if JUCE_DEBUG && ! JUCE_DISABLE_AUDIOPROCESSOR_BEGIN_END_GESTURE_CHECKING
1314 jassert (! changingParams[parameterIndex]);
1315 changingParams.setBit (parameterIndex);
1320 l->audioProcessorParameterChangeGestureBegin (
this, parameterIndex);
1333 param->endChangeGesture();
1339 #if JUCE_DEBUG && ! JUCE_DISABLE_AUDIOPROCESSOR_BEGIN_END_GESTURE_CHECKING
1343 jassert (changingParams[parameterIndex]);
1344 changingParams.clearBit (parameterIndex);
1349 l->audioProcessorParameterChangeGestureEnd (
this, parameterIndex);
1361 return p->getName (maximumStringLength);
1372 jassert (! textRecursionCheck);
1383 return p->getText (
p->getValue(), maximumStringLength);
1397 return p->getValue();
1405 p->setValue (newValue);
1411 return p->getDefaultValue();
1419 return p->getName (512);
1436 return p->getNumSteps();
1444 return p->isDiscrete();
1452 return p->getLabel();
1460 return p->isAutomatable();
1468 return p->isOrientationInverted();
1476 return p->isMetaParameter();
1484 return p->getCategory();
1510 #if JUCE_DEBUG && ! JUCE_DISABLE_AUDIOPROCESSOR_BEGIN_END_GESTURE_CHECKING
1513 jassert (! isPerformingGesture);
1528 #if JUCE_DEBUG && ! JUCE_DISABLE_AUDIOPROCESSOR_BEGIN_END_GESTURE_CHECKING
1532 jassert (! isPerformingGesture);
1533 isPerformingGesture =
true;
1546 for (
int i =
processor->listeners.size(); --
i >= 0;)
1557 #if JUCE_DEBUG && ! JUCE_DISABLE_AUDIOPROCESSOR_BEGIN_END_GESTURE_CHECKING
1561 jassert (isPerformingGesture);
1562 isPerformingGesture =
false;
1575 for (
int i =
processor->listeners.size(); --
i >= 0;)
1593 for (
int i =
processor->listeners.size(); --
i >= 0;)
1633 listeners.addIfNotAlreadyThere (newListener);
1639 listeners.removeFirstMatchingValue (listenerToRemove);
#define copy(x)
Definition ADnoteParameters.cpp:1011
#define noexcept
Definition DistrhoDefines.h:72
T limit(T val, T min, T max)
Definition Util.h:78
CAdPlugDatabase::CRecord::RecordType type
Definition adplugdb.cpp:93
virtual void setNonRealtime(bool isNonRealtime) noexcept
Definition AudioProcessor.cpp:72
virtual const String getOutputChannelName(ChannelType, uint) const
Definition AudioProcessor.cpp:127
virtual ~AudioProcessor()
Definition AudioProcessor.cpp:42
void setPlayConfigDetails(uint numAudioIns, uint numAudioOuts, uint numCVIns, uint numCVOuts, uint numMIDIIns, uint numMIDIOuts, double sampleRate, int blockSize)
Definition AudioProcessor.cpp:47
AudioProcessor()
Definition AudioProcessor.cpp:25
void setLatencySamples(int newLatency)
Definition AudioProcessor.cpp:77
virtual void reset()
Definition AudioProcessor.cpp:89
void setRateAndBufferSizeDetails(double sampleRate, int blockSize) noexcept
Definition AudioProcessor.cpp:65
void suspendProcessing(bool shouldBeSuspended)
Definition AudioProcessor.cpp:83
virtual const String getInputChannelName(ChannelType, uint) const
Definition AudioProcessor.cpp:122
static uint16 swapIfBigEndian(uint16 value) noexcept
Definition ByteOrder.h:218
Definition juce_Array.h:56
int size() const noexcept
Definition juce_Array.h:215
bool contains(ParameterType elementToLookFor) const
Definition juce_Array.h:400
ElementType & getReference(int index) noexcept
Definition juce_Array.h:267
Definition juce_AudioSampleBuffer.h:34
Definition juce_AudioChannelSet.h:47
static AudioChannelSet JUCE_CALLTYPE create7point1()
Definition juce_AudioChannelSet.cpp:464
static AudioChannelSet JUCE_CALLTYPE namedChannelSet(int numChannels)
Definition juce_AudioChannelSet.cpp:525
static AudioChannelSet JUCE_CALLTYPE quadraphonic()
Definition juce_AudioChannelSet.cpp:466
static AudioChannelSet JUCE_CALLTYPE create5point0()
Definition juce_AudioChannelSet.cpp:456
int size() const noexcept
Definition juce_AudioChannelSet.cpp:396
static AudioChannelSet JUCE_CALLTYPE create6point0()
Definition juce_AudioChannelSet.cpp:458
static AudioChannelSet JUCE_CALLTYPE disabled()
Definition juce_AudioChannelSet.cpp:450
bool isDisabled() const noexcept
Definition juce_AudioChannelSet.h:451
static AudioChannelSet JUCE_CALLTYPE mono()
Definition juce_AudioChannelSet.cpp:451
static Array< AudioChannelSet > JUCE_CALLTYPE channelSetsWithNumberOfChannels(int numChannels)
Definition juce_AudioChannelSet.cpp:539
static AudioChannelSet JUCE_CALLTYPE stereo()
Definition juce_AudioChannelSet.cpp:452
static AudioChannelSet JUCE_CALLTYPE create6point1()
Definition juce_AudioChannelSet.cpp:459
static AudioChannelSet JUCE_CALLTYPE create5point1()
Definition juce_AudioChannelSet.cpp:457
static AudioChannelSet JUCE_CALLTYPE create7point0SDDS()
Definition juce_AudioChannelSet.cpp:463
static String JUCE_CALLTYPE getChannelTypeName(ChannelType)
Definition juce_AudioChannelSet.cpp:42
static AudioChannelSet JUCE_CALLTYPE create7point0point2()
Definition juce_AudioChannelSet.cpp:472
static AudioChannelSet JUCE_CALLTYPE create7point1SDDS()
Definition juce_AudioChannelSet.cpp:465
static AudioChannelSet JUCE_CALLTYPE create7point0()
Definition juce_AudioChannelSet.cpp:462
static AudioChannelSet JUCE_CALLTYPE ambisonic(int order=1)
Definition juce_AudioChannelSet.cpp:479
static AudioChannelSet JUCE_CALLTYPE createLCRS()
Definition juce_AudioChannelSet.cpp:455
static AudioChannelSet JUCE_CALLTYPE create7point1point2()
Definition juce_AudioChannelSet.cpp:473
static AudioChannelSet JUCE_CALLTYPE canonicalChannelSet(int numChannels)
Definition juce_AudioChannelSet.cpp:511
static AudioChannelSet JUCE_CALLTYPE discreteChannels(int numChannels)
Definition juce_AudioChannelSet.cpp:504
static AudioChannelSet JUCE_CALLTYPE createLCR()
Definition juce_AudioChannelSet.cpp:453
Definition juce_AudioPlayHead.h:39
Definition juce_AudioProcessor.h:361
AudioChannelSet supportedLayoutWithChannels(int channels) const
Definition juce_AudioProcessor.cpp:1123
AudioChannelSet lastLayout
Definition juce_AudioProcessor.h:495
bool enable(bool shouldEnable=true)
Definition juce_AudioProcessor.cpp:1057
bool isNumberOfChannelsSupported(int channels) const
Definition juce_AudioProcessor.cpp:1114
AudioProcessor & owner
Definition juce_AudioProcessor.h:493
bool setCurrentLayoutWithoutEnabling(const AudioChannelSet &layout)
Definition juce_AudioProcessor.cpp:1020
friend class AudioProcessor
Definition juce_AudioProcessor.h:481
BusDirectionAndIndex getDirectionAndIndex() const noexcept
Definition juce_AudioProcessor.cpp:1002
String name
Definition juce_AudioProcessor.h:494
bool setCurrentLayout(const AudioChannelSet &layout)
Definition juce_AudioProcessor.cpp:1014
int getBusIndex() const noexcept
Definition juce_AudioProcessor.cpp:1000
void updateChannelCount() noexcept
Definition juce_AudioProcessor.cpp:1158
AudioChannelSet dfltLayout
Definition juce_AudioProcessor.h:495
int getChannelIndexInProcessBlockBuffer(int channelIndex) const noexcept
Definition juce_AudioProcessor.cpp:1152
bool setNumberOfChannels(int channels)
Definition juce_AudioProcessor.cpp:1039
int getMaxSupportedChannels(int limit=AudioChannelSet::maxChannelsOfNamedLayout) const
Definition juce_AudioProcessor.cpp:1065
bool isLayoutSupported(const AudioChannelSet &set, BusesLayout *currentLayout=nullptr) const
Definition juce_AudioProcessor.cpp:1074
bool isMain() const noexcept
Definition juce_AudioProcessor.h:370
AudioChannelSet layout
Definition juce_AudioProcessor.h:495
bool isEnabled() const noexcept
Definition juce_AudioProcessor.h:452
bool isInput() const noexcept
Definition juce_AudioProcessor.cpp:999
BusesLayout getBusesLayoutForLayoutChangeOfBus(const AudioChannelSet &set) const
Definition juce_AudioProcessor.cpp:1145
Bus(AudioProcessor &, const String &, const AudioChannelSet &, bool)
Definition juce_AudioProcessor.cpp:988
bool enabledByDefault
Definition juce_AudioProcessor.h:496
int cachedChannelCount
Definition juce_AudioProcessor.h:497
Definition juce_AudioProcessorEditor.h:43
Definition juce_AudioProcessor.h:46
virtual bool canApplyBusesLayout(const BusesLayout &layouts) const
Definition juce_AudioProcessor.h:1336
Array< AudioProcessorListener * > listeners
Definition juce_AudioProcessor.h:1498
friend class AudioProcessorParameter
Definition juce_AudioProcessor.h:1545
int getTotalNumInputChannels() const noexcept
Definition juce_AudioProcessor.h:733
virtual AudioProcessorParameter::Category getParameterCategory(int parameterIndex) const
Definition juce_AudioProcessor.cpp:1481
void processBypassed(AudioBuffer< floatType > &, MidiBuffer &)
Definition juce_AudioProcessor.cpp:587
int getChannelIndexInProcessBlockBuffer(bool isInput, int busIndex, int channelIndex) const noexcept
Definition juce_AudioProcessor.cpp:381
bool suspended
Definition juce_AudioProcessor.h:1504
virtual const String getParameterName(int parameterIndex)
Definition juce_AudioProcessor.cpp:1416
void audioIOChanged(bool busNumberChanged, bool channelNumChanged)
Definition juce_AudioProcessor.cpp:840
bool enableAllBuses()
Definition juce_AudioProcessor.cpp:205
WrapperType
Definition juce_AudioProcessor.h:1222
@ wrapperType_Standalone
Definition juce_AudioProcessor.h:1229
@ wrapperType_VST
Definition juce_AudioProcessor.h:1224
@ wrapperType_AAX
Definition juce_AudioProcessor.h:1228
@ wrapperType_Undefined
Definition juce_AudioProcessor.h:1223
@ wrapperType_AudioUnitv3
Definition juce_AudioProcessor.h:1227
@ wrapperType_Unity
Definition juce_AudioProcessor.h:1230
@ wrapperType_LV2
Definition juce_AudioProcessor.h:1231
@ wrapperType_AudioUnit
Definition juce_AudioProcessor.h:1226
@ wrapperType_VST3
Definition juce_AudioProcessor.h:1225
void setProcessingPrecision(ProcessingPrecision newPrecision) noexcept
Definition juce_AudioProcessor.cpp:619
virtual void processBlockBypassed(AudioBuffer< float > &buffer, MidiBuffer &midiMessages)
Definition juce_AudioProcessor.cpp:600
OwnedArray< Bus > inputBuses
Definition juce_AudioProcessor.h:1510
Bus * getBus(bool isInput, int busIndex) noexcept
Definition juce_AudioProcessor.h:509
Component::SafePointer< AudioProcessorEditor > activeEditor
Definition juce_AudioProcessor.h:1500
const WrapperType wrapperType
Definition juce_AudioProcessor.h:1237
void updateHostDisplay(const ChangeDetails &details=ChangeDetails::getDefaultFlags())
Definition juce_AudioProcessor.cpp:425
int getLatencySamples() const noexcept
Definition juce_AudioProcessor.h:824
int cachedTotalIns
Definition juce_AudioProcessor.h:1513
virtual float getParameterDefaultValue(int parameterIndex)
Definition juce_AudioProcessor.cpp:1408
void setParameterTree(AudioProcessorParameterGroup &&newTree)
Definition juce_AudioProcessor.cpp:549
virtual bool isOutputChannelStereoPair(int index) const
Definition juce_AudioProcessor.cpp:645
virtual String getParameterLabel(int index) const
Definition juce_AudioProcessor.cpp:1449
BusesLayout getBusesLayout() const
Definition juce_AudioProcessor.cpp:171
bool disableNonMainBuses()
Definition juce_AudioProcessor.cpp:765
bool checkBusesLayoutSupported(const BusesLayout &) const
Definition juce_AudioProcessor.cpp:215
void addParameter(AudioProcessorParameter *)
Definition juce_AudioProcessor.cpp:517
virtual bool supportsDoublePrecisionProcessing() const
Definition juce_AudioProcessor.cpp:614
virtual bool applyBusLayouts(const BusesLayout &layouts)
Definition juce_AudioProcessor.cpp:793
virtual float getParameter(int parameterIndex)
Definition juce_AudioProcessor.cpp:1394
Array< AudioProcessorParameter * > flatParameterList
Definition juce_AudioProcessor.h:1516
OwnedArray< Bus > outputBuses
Definition juce_AudioProcessor.h:1510
void updateSpeakerFormatStrings()
Definition juce_AudioProcessor.cpp:781
virtual bool isParameterDiscrete(int parameterIndex) const
Definition juce_AudioProcessor.cpp:1441
virtual bool isParameterAutomatable(int parameterIndex) const
Definition juce_AudioProcessor.cpp:1457
virtual int getParameterNumSteps(int parameterIndex)
Definition juce_AudioProcessor.cpp:1433
virtual bool isParameterOrientationInverted(int index) const
Definition juce_AudioProcessor.cpp:1465
virtual void removeListener(AudioProcessorListener *listenerToRemove)
Definition juce_AudioProcessor.cpp:337
void endParameterChangeGesture(int parameterIndex)
Definition juce_AudioProcessor.cpp:1329
BusesLayout getNextBestLayoutInList(const BusesLayout &, const Array< InOutChannelPair > &) const
Definition juce_AudioProcessor.cpp:669
virtual void updateTrackProperties(const TrackProperties &properties)
Definition juce_AudioProcessor.cpp:930
bool removeBus(bool isInput)
Definition juce_AudioProcessor.cpp:87
std::atomic< bool > nonRealtime
Definition juce_AudioProcessor.h:1505
int getBusCount(bool isInput) const noexcept
Definition juce_AudioProcessor.h:504
virtual void getStateInformation(juce::MemoryBlock &destData)=0
ProcessingPrecision
Definition juce_AudioProcessor.h:76
@ doublePrecision
Definition juce_AudioProcessor.h:78
static std::unique_ptr< XmlElement > getXmlFromBinary(const void *data, int sizeInBytes)
Definition juce_AudioProcessor.cpp:951
static BusesProperties busesPropertiesFromLayoutArray(const Array< InOutChannelPair > &)
Definition juce_AudioProcessor.cpp:656
void sendParamChangeMessageToListeners(int parameterIndex, float newValue)
Definition juce_AudioProcessor.cpp:1280
virtual bool isInputChannelStereoPair(int index) const
Definition juce_AudioProcessor.cpp:644
int getOffsetInBusBufferForAbsoluteChannelIndex(bool isInput, int absoluteChannelIndex, int &busIndex) const noexcept
Definition juce_AudioProcessor.cpp:392
virtual void setPlayHead(AudioPlayHead *newPlayHead)
Definition juce_AudioProcessor.cpp:326
virtual AudioProcessorEditor * createEditor()=0
static void JUCE_CALLTYPE setTypeOfNextNewPlugin(WrapperType)
Definition juce_AudioProcessor.cpp:31
virtual void numBusesChanged()
Definition juce_AudioProcessor.cpp:378
virtual void processBlock(AudioBuffer< float > &buffer, MidiBuffer &midiMessages)=0
AudioProcessorEditor * getActiveEditor() const noexcept
Definition juce_AudioProcessor.cpp:889
int cachedTotalOuts
Definition juce_AudioProcessor.h:1513
void validateParameter(AudioProcessorParameter *)
Definition juce_AudioProcessor.cpp:432
virtual bool isMetaParameter(int parameterIndex) const
Definition juce_AudioProcessor.cpp:1473
void checkForDuplicateGroupIDs(const AudioProcessorParameterGroup &)
Definition juce_AudioProcessor.cpp:496
virtual const String getName() const =0
int latencySamples
Definition juce_AudioProcessor.h:1503
double currentSampleRate
Definition juce_AudioProcessor.h:1502
AudioProcessorEditor * createEditorIfNeeded()
Definition juce_AudioProcessor.cpp:895
virtual bool canAddBus(bool isInput) const
Definition juce_AudioProcessor.h:527
bool addBus(bool isInput)
Definition juce_AudioProcessor.cpp:73
void editorBeingDeleted(AudioProcessorEditor *) noexcept
Definition juce_AudioProcessor.cpp:881
const AudioProcessorParameterGroup & getParameterTree() const
Definition juce_AudioProcessor.cpp:515
virtual void addListener(AudioProcessorListener *newListener)
Definition juce_AudioProcessor.cpp:331
std::atomic< AudioPlayHead * > playHead
Definition juce_AudioProcessor.h:1403
CriticalSection activeEditorLock
Definition juce_AudioProcessor.h:1507
int getChannelCountOfBus(bool isInput, int busIndex) const noexcept
Definition juce_AudioProcessor.h:616
const Array< AudioProcessorParameter * > & getParameters() const
Definition juce_AudioProcessor.cpp:514
virtual bool hasEditor() const =0
static bool containsLayout(const BusesLayout &layouts, const std::initializer_list< const short[2]> &channelLayoutList)
Definition juce_AudioProcessor.h:768
virtual String getParameterID(int index)
Definition juce_AudioProcessor.cpp:1424
virtual void processorLayoutsChanged()
Definition juce_AudioProcessor.cpp:379
static void copyXmlToBinary(const XmlElement &xml, juce::MemoryBlock &destData)
Definition juce_AudioProcessor.cpp:936
virtual void setStateInformation(const void *data, int sizeInBytes)=0
static int getDefaultNumParameterSteps() noexcept
Definition juce_AudioProcessor.cpp:573
CriticalSection callbackLock
Definition juce_AudioProcessor.h:1507
void addParameterGroup(std::unique_ptr< AudioProcessorParameterGroup >)
Definition juce_AudioProcessor.cpp:529
CriticalSection listenerLock
Definition juce_AudioProcessor.h:1507
void checkForDuplicateParamID(AudioProcessorParameter *)
Definition juce_AudioProcessor.cpp:481
virtual bool isBusesLayoutSupported(const BusesLayout &) const
Definition juce_AudioProcessor.h:1303
virtual bool canRemoveBus(bool isInput) const
Definition juce_AudioProcessor.h:540
AudioChannelSet getChannelLayoutOfBus(bool isInput, int busIndex) const noexcept
Definition juce_AudioProcessor.cpp:181
void createBus(bool isInput, const BusProperties &)
Definition juce_AudioProcessor.cpp:648
virtual void setParameter(int parameterIndex, float newValue)
Definition juce_AudioProcessor.cpp:1402
virtual void numChannelsChanged()
Definition juce_AudioProcessor.cpp:377
virtual void refreshParameterList()
Definition juce_AudioProcessor.cpp:571
bool setChannelLayoutOfBus(bool isInput, int busIndex, const AudioChannelSet &layout)
Definition juce_AudioProcessor.cpp:189
virtual StringArray getAlternateDisplayNames() const
Definition juce_AudioProcessor.cpp:70
virtual const String getParameterText(int parameterIndex)
Definition juce_AudioProcessor.cpp:1367
bool setBusesLayoutWithoutEnabling(const BusesLayout &)
Definition juce_AudioProcessor.cpp:127
int getTotalNumOutputChannels() const noexcept
Definition juce_AudioProcessor.h:747
void checkForDuplicateTrimmedParamID(AudioProcessorParameter *)
Definition juce_AudioProcessor.cpp:447
virtual bool canApplyBusCountChange(bool isInput, bool isAddingBuses, BusProperties &outNewBusProperties)
Definition juce_AudioProcessor.cpp:965
AudioProcessorListener * getListenerLocked(int) const noexcept
Definition juce_AudioProcessor.cpp:419
AudioProcessorParameter * getParamChecked(int) const
Definition juce_AudioProcessor.cpp:1489
virtual int32 getAAXPluginIDForMainBusConfig(const AudioChannelSet &mainInputLayout, const AudioChannelSet &mainOutputLayout, bool idForAudioSuite) const
Definition juce_AudioProcessor.cpp:1197
virtual int getNumParameters()
Definition juce_AudioProcessor.cpp:1389
static const char * getWrapperTypeDescription(AudioProcessor::WrapperType) noexcept
Definition juce_AudioProcessor.cpp:1246
void getNextBestLayout(const BusesLayout &, BusesLayout &) const
Definition juce_AudioProcessor.cpp:224
ProcessingPrecision processingPrecision
Definition juce_AudioProcessor.h:1506
bool setBusesLayout(const BusesLayout &)
Definition juce_AudioProcessor.cpp:111
int getMainBusNumInputChannels() const noexcept
Definition juce_AudioProcessor.h:750
void setParameterNotifyingHost(int parameterIndex, float newValue)
Definition juce_AudioProcessor.cpp:1267
String cachedInputSpeakerArrString
Definition juce_AudioProcessor.h:1512
virtual void setCurrentProgramStateInformation(const void *data, int sizeInBytes)
Definition juce_AudioProcessor.cpp:924
void beginParameterChangeGesture(int parameterIndex)
Definition juce_AudioProcessor.cpp:1301
void setRateAndBufferSizeDetails(double sampleRate, int blockSize) noexcept
Definition juce_AudioProcessor.cpp:370
AudioProcessorParameterGroup parameterTree
Definition juce_AudioProcessor.h:1515
String cachedOutputSpeakerArrString
Definition juce_AudioProcessor.h:1512
int blockSize
Definition juce_AudioProcessor.h:1503
AudioProcessor()
Definition juce_AudioProcessor.cpp:36
virtual void getCurrentProgramStateInformation(juce::MemoryBlock &destData)
Definition juce_AudioProcessor.cpp:919
Definition juce_AudioProcessorListener.h:40
virtual void audioProcessorParameterChangeGestureBegin(AudioProcessor *processor, int parameterIndex)
Definition juce_AudioProcessor.cpp:1504
virtual void audioProcessorParameterChangeGestureEnd(AudioProcessor *processor, int parameterIndex)
Definition juce_AudioProcessor.cpp:1505
Definition juce_AudioProcessorParameter.h:294
Definition juce_AudioProcessorParameterGroup.h:42
Array< const AudioProcessorParameterGroup * > getSubgroups(bool recursive) const
Definition juce_AudioProcessorParameterGroup.cpp:114
virtual float getValue() const =0
StringArray valueStrings
Definition juce_AudioProcessorParameter.h:352
void sendValueChangedMessageToListeners(float newValue)
Definition juce_AudioProcessor.cpp:1581
virtual String getCurrentValueAsText() const
Definition juce_AudioProcessor.cpp:1612
virtual String getText(float normalisedValue, int) const
Definition juce_AudioProcessor.cpp:1607
virtual int getNumSteps() const
Definition juce_AudioProcessor.cpp:1603
virtual bool isMetaParameter() const
Definition juce_AudioProcessor.cpp:1601
int parameterIndex
Definition juce_AudioProcessorParameter.h:348
virtual void setValue(float newValue)=0
virtual bool isAutomatable() const
Definition juce_AudioProcessor.cpp:1600
virtual ~AudioProcessorParameter()
Definition juce_AudioProcessor.cpp:1508
void beginChangeGesture()
Definition juce_AudioProcessor.cpp:1523
void removeListener(Listener *listener)
Definition juce_AudioProcessor.cpp:1636
Array< Listener * > listeners
Definition juce_AudioProcessorParameter.h:351
virtual StringArray getAllValueStrings() const
Definition juce_AudioProcessor.cpp:1617
Category
Definition juce_AudioProcessorParameter.h:231
@ genericParameter
Definition juce_AudioProcessorParameter.h:232
void setValueNotifyingHost(float newValue)
Definition juce_AudioProcessor.cpp:1517
void endChangeGesture()
Definition juce_AudioProcessor.cpp:1552
CriticalSection listenerLock
Definition juce_AudioProcessorParameter.h:350
virtual bool isDiscrete() const
Definition juce_AudioProcessor.cpp:1604
virtual bool isOrientationInverted() const
Definition juce_AudioProcessor.cpp:1599
void addListener(Listener *newListener)
Definition juce_AudioProcessor.cpp:1630
AudioProcessor * processor
Definition juce_AudioProcessorParameter.h:347
int getParameterIndex() const noexcept
Definition juce_AudioProcessorParameter.h:254
virtual bool isBoolean() const
Definition juce_AudioProcessor.cpp:1605
virtual Category getCategory() const
Definition juce_AudioProcessor.cpp:1602
int getVersionHint() const
Definition juce_AudioProcessorParameter.h:280
Definition juce_AudioProcessorParameterWithID.h:118
static constexpr uint32 littleEndianInt(const void *bytes) noexcept
Definition juce_ByteOrder.h:203
void * getData() noexcept
Definition juce_MemoryBlock.h:91
size_t getSize() const noexcept
Definition juce_MemoryBlock.h:127
Definition juce_MemoryOutputStream.h:36
Definition juce_MidiBuffer.h:145
Definition juce_OwnedArray.h:51
int size() const noexcept
Definition juce_OwnedArray.h:130
Definition juce_ScopedValueSetter.h:55
Definition juce_StringArray.h:35
Definition juce_String.h:53
static String fromUTF8(const char *utf8buffer, int bufferSizeBytes=-1)
Definition juce_String.cpp:2125
Definition juce_ThreadLocalValue.h:48
Definition juce_XmlElement.h:83
void writeTo(OutputStream &output, const TextFormat &format={}) const
Definition juce_XmlElement.cpp:359
int * l
Definition inflate.c:1579
register unsigned i
Definition inflate.c:1575
int retval
Definition inflate.c:947
static PuglViewHint int value
Definition pugl.h:1708
static const char * name
Definition pugl.h:1582
JSAMPIMAGE data
Definition jpeglib.h:945
#define JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE(...)
Definition juce_CompilerWarnings.h:181
#define JUCE_END_IGNORE_WARNINGS_GCC_LIKE
Definition juce_CompilerWarnings.h:182
#define JUCE_BEGIN_IGNORE_WARNINGS_MSVC(warnings)
Definition juce_CompilerWarnings.h:198
#define JUCE_END_IGNORE_WARNINGS_MSVC
Definition juce_CompilerWarnings.h:199
float out
Definition lilv_test.c:1461
Definition carla_juce.cpp:31
CriticalSection::ScopedLockType ScopedLock
Definition juce_CriticalSection.h:186
static ThreadLocalValue< AudioProcessor::WrapperType > wrapperTypeBeingCreated
Definition juce_AudioProcessor.cpp:29
constexpr Type jmin(Type a, Type b)
Definition juce_MathsFunctions.h:106
unsigned int uint32
Definition juce_MathsFunctions.h:45
signed short int16
Definition juce_MathsFunctions.h:39
const uint32 magicXmlNumber
Definition juce_AudioProcessor.cpp:934
static bool isStereoPair(const OwnedArray< AudioProcessor::Bus > &buses, int index)
Definition juce_AudioProcessor.cpp:637
std::unique_ptr< XmlElement > parseXML(const String &textToParse)
Definition juce_XmlDocument.cpp:41
void ignoreUnused(Types &&...) noexcept
Definition juce_MathsFunctions.h:333
static String getChannelName(const OwnedArray< AudioProcessor::Bus > &buses, int index)
Definition juce_AudioProcessor.cpp:629
Type * addBytesToPointer(Type *basePointer, IntegerType bytes) noexcept
Definition juce_Memory.h:111
signed int int32
Definition juce_MathsFunctions.h:43
bool isPositiveAndBelow(Type1 valueToTest, Type2 upperLimit) noexcept
Definition juce_MathsFunctions.h:279
@ group
Definition juce_AccessibilityRole.h:61
constexpr int numElementsInArray(Type(&)[N]) noexcept
Definition juce_MathsFunctions.h:344
#define false
Definition ordinals.h:83
Definition juce_AudioProcessor.h:485
bool isInput
Definition juce_AudioProcessor.h:486
int index
Definition juce_AudioProcessor.h:487
Definition juce_AudioProcessor.h:1348
AudioChannelSet defaultLayout
Definition juce_AudioProcessor.h:1353
bool isActivatedByDefault
Definition juce_AudioProcessor.h:1356
String busName
Definition juce_AudioProcessor.h:1350
Definition juce_AudioProcessor.h:311
Array< AudioChannelSet > outputBuses
Definition juce_AudioProcessor.h:316
int getNumChannels(bool isInput, int busIndex) const noexcept
Definition juce_AudioProcessor.h:319
Array< AudioChannelSet > inputBuses
Definition juce_AudioProcessor.h:313
AudioChannelSet & getChannelSet(bool isInput, int busIndex) noexcept
Definition juce_AudioProcessor.h:326
Definition juce_AudioProcessor.h:1361
Array< BusProperties > outputLayouts
Definition juce_AudioProcessor.h:1366
void addBus(bool isInput, const String &name, const AudioChannelSet &defaultLayout, bool isActivatedByDefault=true)
Definition juce_AudioProcessor.cpp:1164
Array< BusProperties > inputLayouts
Definition juce_AudioProcessor.h:1363
JUCE_NODISCARD BusesProperties withOutput(const String &name, const AudioChannelSet &defaultLayout, bool isActivatedByDefault=true) const
Definition juce_AudioProcessor.cpp:1187
JUCE_NODISCARD BusesProperties withInput(const String &name, const AudioChannelSet &defaultLayout, bool isActivatedByDefault=true) const
Definition juce_AudioProcessor.cpp:1178
Definition juce_AudioProcessor.h:1447
Definition juce_AudioProcessor.h:1246
Definition juce_AudioProcessorListener.h:63
Definition juce_XmlElement.h:136
int n
Definition crypt.c:458
uch * p
Definition crypt.c:594
typedef int(UZ_EXP MsgFn)()
#define const
Definition zconf.h:137