diff options
author | chai <chaifix@163.com> | 2019-08-14 22:50:43 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2019-08-14 22:50:43 +0800 |
commit | 15740faf9fe9fe4be08965098bbf2947e096aeeb (patch) | |
tree | a730ec236656cc8cab5b13f088adfaed6bb218fb /Runtime/Audio/AudioLowPassFilter.h |
Diffstat (limited to 'Runtime/Audio/AudioLowPassFilter.h')
-rw-r--r-- | Runtime/Audio/AudioLowPassFilter.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/Runtime/Audio/AudioLowPassFilter.h b/Runtime/Audio/AudioLowPassFilter.h new file mode 100644 index 0000000..16e2d05 --- /dev/null +++ b/Runtime/Audio/AudioLowPassFilter.h @@ -0,0 +1,41 @@ +#ifndef __AUDIOLOWPASS_FILTER_H__ +#define __AUDIOLOWPASS_FILTER_H__ +#include "AudioSourceFilter.h" +#include "Runtime/Audio/AudioSource.h" +#include "Runtime/Animation/AnimationCurveUtility.h" +#include "Runtime/Math/AnimationCurve.h" + +#if ENABLE_AUDIO_FMOD + +class AudioLowPassFilter : public AudioFilter { +public: + REGISTER_DERIVED_CLASS (AudioLowPassFilter, AudioFilter) + DECLARE_OBJECT_SERIALIZE (AudioLowPassFilter) + AudioLowPassFilter (MemLabelId label, ObjectCreationMode mode); + + virtual void AwakeFromLoad (AwakeFromLoadMode awakeMode); + + virtual void CheckConsistency (); + virtual void Update(); + virtual void AddToManager(); + + float GetCutoffFrequency() const { return m_CutoffFrequency; } + void SetCutoffFrequency(float value) { m_CutoffFrequency = value; Update(); SetDirty();} + float GetLowpassResonanceQ() const { return m_LowpassResonanceQ; } + void SetLowpassResonanceQ(float value) { m_LowpassResonanceQ = value; Update(); SetDirty();} + + AnimationCurve& GetCustomLowpassLevelCurve (); + const AnimationCurve& GetCustomLowpassLevelCurve () const; + void SetCustomLowpassLevelCurve(const AnimationCurve& curve); + + virtual void Reset(); +private: + AnimationCurve m_LowpassLevelCustomCurve; + float m_CutoffFrequency; + float m_LowpassResonanceQ; + bool m_NeedToNormalizeCurve; +}; + + +#endif // ENABLE_AUDIO +#endif // __AUDIOLOWPASS_FILTER_H__ |