summaryrefslogtreecommitdiff
path: root/Runtime/Audio/AudioEchoFilter.h
diff options
context:
space:
mode:
Diffstat (limited to 'Runtime/Audio/AudioEchoFilter.h')
-rw-r--r--Runtime/Audio/AudioEchoFilter.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/Runtime/Audio/AudioEchoFilter.h b/Runtime/Audio/AudioEchoFilter.h
new file mode 100644
index 0000000..3bdc5f9
--- /dev/null
+++ b/Runtime/Audio/AudioEchoFilter.h
@@ -0,0 +1,41 @@
+#ifndef __AUDIOECHO_FILTER_H__
+#define __AUDIOECHO_FILTER_H__
+
+#if ENABLE_AUDIO_FMOD
+
+#include "AudioSourceFilter.h"
+
+class AudioEchoFilter : public AudioFilter
+{
+public:
+ REGISTER_DERIVED_CLASS (AudioEchoFilter, AudioFilter)
+ DECLARE_OBJECT_SERIALIZE (AudioEchoFilter)
+ AudioEchoFilter (MemLabelId label, ObjectCreationMode mode);
+
+ virtual void CheckConsistency ();
+ virtual void AddToManager();
+ virtual void Reset();
+
+ void Update();
+
+ float GetDelay() const { return m_Delay; }
+ void SetDelay(const float delay) { m_Delay = (unsigned)delay; Update(); SetDirty(); }
+
+ float GetDecayRatio() const { return m_DecayRatio; }
+ void SetDecayRatio(const float decay) { m_DecayRatio = decay; Update(); SetDirty(); }
+
+ float GetDryMix() const { return m_DryMix; }
+ void SetDryMix(const float drymix) { m_DryMix = drymix; Update(); SetDirty(); }
+
+ float GetWetMix() const { return m_WetMix; }
+ void SetWetMix(const float wetmix) { m_WetMix = wetmix; Update(); SetDirty(); }
+
+private:
+ unsigned m_Delay; // Echo delay in ms. 10 to 5000. Default = 500.
+ float m_DecayRatio; // Echo decay per delay. 0 to 1. 1.0 = No decay, 0.0 = total decay (ie simple 1 line delay). Default = 0.5.
+ float m_DryMix; // Volume of original signal to pass to output. 0.0 to 1.0. Default = 1.0.
+ float m_WetMix; // Volume of echo signal to pass to output. 0.0 to 1.0. Default = 1.0.
+};
+
+#endif //ENABLE_AUDIO
+#endif // ___AUDIOECHO_FILTER_H__