#include "amuse/Submix.hpp" namespace amuse { Submix::Submix(Engine& engine) : m_root(engine) {} EffectChorus& Submix::makeChorus(uint32_t baseDelay, uint32_t variation, uint32_t period) { return makeEffect(baseDelay, variation, period); } EffectChorus& Submix::makeChorus(const EffectChorusInfo& info) { return makeEffect(info); } EffectDelay& Submix::makeDelay(uint32_t initDelay, uint32_t initFeedback, uint32_t initOutput) { return makeEffect(initDelay, initFeedback, initOutput); } EffectDelay& Submix::makeDelay(const EffectDelayInfo& info) { return makeEffect(info); } EffectReverbStd& Submix::makeReverbStd(float coloration, float mix, float time, float damping, float preDelay) { return makeEffect(coloration, mix, time, damping, preDelay); } EffectReverbStd& Submix::makeReverbStd(const EffectReverbStdInfo& info) { return makeEffect(info); } EffectReverbHi& Submix::makeReverbHi(float coloration, float mix, float time, float damping, float preDelay, float crosstalk) { return makeEffect(coloration, mix, time, damping, preDelay, crosstalk); } EffectReverbHi& Submix::makeReverbHi(const EffectReverbHiInfo& info) { return makeEffect(info); } void Submix::applyEffect(int16_t* audio, size_t frameCount, const ChannelMap& chanMap) const { for (const std::unique_ptr& effect : m_effectStack) ((EffectBase&)*effect).applyEffect(audio, frameCount, chanMap); } void Submix::applyEffect(int32_t* audio, size_t frameCount, const ChannelMap& chanMap) const { for (const std::unique_ptr& effect : m_effectStack) ((EffectBase&)*effect).applyEffect(audio, frameCount, chanMap); } void Submix::applyEffect(float* audio, size_t frameCount, const ChannelMap& chanMap) const { for (const std::unique_ptr& effect : m_effectStack) ((EffectBase&)*effect).applyEffect(audio, frameCount, chanMap); } void Submix::resetOutputSampleRate(double sampleRate) { for (const std::unique_ptr& effect : m_effectStack) effect->resetOutputSampleRate(sampleRate); } } // namespace amuse