37template <
typename FloatType,
typename Function = FloatType (*) (FloatType)>
40 Function functionToUse;
48 template <
typename SampleType>
49 SampleType JUCE_VECTOR_CALLTYPE
processSample (SampleType inputSample)
const noexcept
51 return functionToUse (inputSample);
55 template <
typename ProcessContext>
56 void process (
const ProcessContext& context)
const noexcept
58 if (context.isBypassed)
60 if (context.usesSeparateInputAndOutputBlocks())
61 context.getOutputBlock().copyFrom (context.getInputBlock());
66 context.getOutputBlock(),
71 void reset() noexcept {}
77#if (! JUCE_CXX17_IS_AVAILABLE) || JUCE_CLANG
78template <
typename Functor>
79static WaveShaper<typename std::result_of<Functor>, Functor> CreateWaveShaper (Functor functionToUse) {
return {functionToUse}; }
81template <
typename Functor>
82static WaveShaper<typename std::invoke_result<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