LMMS
Loading...
Searching...
No Matches
juce::dsp::ProcessorChain< Processors > Class Template Reference

#include <juce_ProcessorChain.h>

Public Member Functions

template<int Index>
auto & get () noexcept
template<int Index>
const auto & get () const noexcept
template<int Index>
void setBypassed (bool b) noexcept
template<int Index>
bool isBypassed () const noexcept
void prepare (const ProcessSpec &spec)
void reset ()
template<typename ProcessContext>
void process (const ProcessContext &context) noexcept

Private Member Functions

template<typename Context, typename Proc, size_t Ix, std::enable_if_t<! detail::UseContextDirectly< Context, Ix >::value, int > = 0>
void processOne (const Context &context, Proc &proc, std::integral_constant< size_t, Ix >) noexcept
template<typename Context, typename Proc, size_t Ix, std::enable_if_t< detail::UseContextDirectly< Context, Ix >::value, int > = 0>
void processOne (const Context &context, Proc &proc, std::integral_constant< size_t, Ix >) noexcept

Private Attributes

std::tuple< Processors... > processors
std::array< bool, sizeof...(Processors)> bypassed { {} }

Detailed Description

template<typename... Processors>
class juce::dsp::ProcessorChain< Processors >

This variadically-templated class lets you join together any number of processor classes into a single processor which will call process() on them all in sequence.

@tags{DSP}

Member Function Documentation

◆ get() [1/2]

template<typename... Processors>
template<int Index>
const auto & juce::dsp::ProcessorChain< Processors >::get ( ) const
inlinenoexcept

Get a reference to the processor at index Index.

◆ get() [2/2]

template<typename... Processors>
template<int Index>
auto & juce::dsp::ProcessorChain< Processors >::get ( )
inlinenoexcept

Get a reference to the processor at index Index.

◆ isBypassed()

template<typename... Processors>
template<int Index>
bool juce::dsp::ProcessorChain< Processors >::isBypassed ( ) const
inlinenoexcept

Query whether the processor at index Index is bypassed.

◆ prepare()

template<typename... Processors>
void juce::dsp::ProcessorChain< Processors >::prepare ( const ProcessSpec & spec)
inline

Prepare all inner processors with the provided ProcessSpec.

◆ process()

template<typename... Processors>
template<typename ProcessContext>
void juce::dsp::ProcessorChain< Processors >::process ( const ProcessContext & context)
inlinenoexcept

Process context through all inner processors in sequence.

◆ processOne() [1/2]

template<typename... Processors>
template<typename Context, typename Proc, size_t Ix, std::enable_if_t< detail::UseContextDirectly< Context, Ix >::value, int > = 0>
void juce::dsp::ProcessorChain< Processors >::processOne ( const Context & context,
Proc & proc,
std::integral_constant< size_t, Ix >  )
inlineprivatenoexcept

◆ processOne() [2/2]

template<typename... Processors>
template<typename Context, typename Proc, size_t Ix, std::enable_if_t<! detail::UseContextDirectly< Context, Ix >::value, int > = 0>
void juce::dsp::ProcessorChain< Processors >::processOne ( const Context & context,
Proc & proc,
std::integral_constant< size_t, Ix >  )
inlineprivatenoexcept

◆ reset()

template<typename... Processors>
void juce::dsp::ProcessorChain< Processors >::reset ( )
inline

Reset all inner processors.

◆ setBypassed()

template<typename... Processors>
template<int Index>
void juce::dsp::ProcessorChain< Processors >::setBypassed ( bool b)
inlinenoexcept

Set the processor at index Index to be bypassed or enabled.

Member Data Documentation

◆ bypassed

template<typename... Processors>
std::array<bool, sizeof...(Processors)> juce::dsp::ProcessorChain< Processors >::bypassed { {} }
private

◆ processors

template<typename... Processors>
std::tuple<Processors...> juce::dsp::ProcessorChain< Processors >::processors
private

The documentation for this class was generated from the following file: