amuse/include/amuse/EffectBase.hpp
Lioncash d7aaff25d0 General: Clean up inclusions
Ensures that each header includes all of its dependencies that can't be
forward declared.
2019-08-25 07:34:27 -04:00

21 lines
509 B
C++

#pragma once
namespace amuse {
struct ChannelMap;
enum class EffectType { Invalid, ReverbStd, ReverbHi, Delay, Chorus, EffectTypeMAX };
class EffectBaseTypeless {
public:
virtual ~EffectBaseTypeless() = default;
virtual void resetOutputSampleRate(double sampleRate) = 0;
virtual EffectType Isa() const = 0;
};
template <typename T>
class EffectBase : public EffectBaseTypeless {
public:
virtual void applyEffect(T* audio, size_t frameCount, const ChannelMap& chanMap) = 0;
};
} // namespace amuse