34template <
typename FloatType,
typename Function = FloatType (*) (FloatType)>
37 Function functionToUse;
45 template <
typename SampleType>
46 SampleType JUCE_VECTOR_CALLTYPE
processSample (SampleType inputSample)
const noexcept
48 return functionToUse (inputSample);
52 template <
typename ProcessContext>
53 void process (
const ProcessContext& context)
const noexcept
55 if (context.isBypassed)
57 if (context.usesSeparateInputAndOutputBlocks())
58 context.getOutputBlock().copyFrom (context.getInputBlock());
63 context.getOutputBlock(),
68 void reset() noexcept {}
72#if ! ((JUCE_MAC || JUCE_IOS) && JUCE_CLANG && __clang_major__ < 10)
73template <
typename Functor>
74static WaveShaper<typename std::invoke_result<Functor>, Functor> CreateWaveShaper (Functor functionToUse) {
return {functionToUse}; }
76template <
typename Functor>
77static WaveShaper<typename std::result_of<Functor>, Functor> CreateWaveShaper (Functor functionToUse) {
return {functionToUse}; }
static void process(AudioBlock< Src1SampleType > inBlock, AudioBlock< Src2SampleType > outBlock, FunctionType &&function)
void prepare(const ProcessSpec &) noexcept
SampleType JUCE_VECTOR_CALLTYPE processSample(SampleType inputSample) const noexcept
void process(const ProcessContext &context) const noexcept