39template <
typename MonoProcessorType,
typename StateType>
52 while (
static_cast<size_t> (processors.
size()) <
spec.numChannels)
58 for (
auto* p : processors)
62 void reset()
noexcept {
for (
auto* p : processors) p->reset(); }
64 template <
typename ProcessContext>
67 jassert ((
int) context.getInputBlock().getNumChannels() <= processors.
size());
68 jassert ((
int) context.getOutputBlock().getNumChannels() <= processors.
size());
70 auto numChannels =
static_cast<size_t> (
jmin (context.getInputBlock().getNumChannels(),
71 context.getOutputBlock().getNumChannels()));
77 typename StateType::Ptr state;
80 template <
typename ProcessContext>
89 typename ProcessContext::ConstAudioBlockType getInputBlock()
const noexcept {
return ProcessContext::getInputBlock() .getSingleChannelBlock (channel); }
90 typename ProcessContext::AudioBlockType getOutputBlock()
const noexcept {
return ProcessContext::getOutputBlock().getSingleChannelBlock (channel); }
An array designed for holding objects.
int size() const noexcept
Returns the number of items currently in the array.
ObjectClass * add(ObjectClass *newObject)
Appends a new object to the end of the array.
void removeRange(int startIndex, int numberToRemove, bool deleteObjects=true)
Removes a range of objects from the array.
constexpr Type jmin(Type a, Type b)
Returns the smaller of two values.
Type unalignedPointerCast(void *ptr) noexcept
Casts a pointer to another type via void*, which suppresses the cast-align warning which sometimes ar...
This structure is passed into a DSP algorithm's prepare() method, and contains information about vari...
Converts a mono processor class into a multi-channel version by duplicating it and applying multichan...