cAudio  2.3.0
3d Audio Engine
 All Classes Namespaces Functions Variables Enumerations Pages
IEffect.h
1 // Copyright (c) 2008-2011 Raynaldo (Wildicv) Rivera, Joshua (Dark_Kilauea) Jones, Murat (wolfmanfx) Sari
2 // This file is part of the "cAudio Engine"
3 // For conditions of distribution and use, see copyright notice in cAudio.h
4 
5 #pragma once
6 
7 #include "IRefCounted.h"
8 #include "IFilter.h"
9 #include "IEffectParameters.h"
10 #include "cAudioDefines.h"
11 
12 #if CAUDIO_EFX_ENABLED == 1
13 
14 namespace cAudio
15 {
17  enum EffectTypes
18  {
19  EET_NULL,
20  EET_EAX_REVERB,
21  EET_REVERB,
22  EET_CHORUS,
23  EET_DISTORTION,
24  EET_ECHO,
25  EET_FLANGER,
26  EET_FREQUENCY_SHIFTER,
27  EET_VOCAL_MORPHER,
28  EET_PITCH_SHIFTER,
29  EET_RING_MODULATOR,
30  EET_AUTOWAH,
31  EET_COMPRESSOR,
32  EET_EQUALIZER,
33  EET_COUNT
34  };
35 
37  class IEffect : public IRefCounted
38  {
39  public:
40  IEffect() { }
41  virtual ~IEffect() { }
42 
44  virtual const EffectTypes& getType() const = 0;
45 
47 
49  virtual void setType(const EffectTypes& type) = 0;
50 
52  virtual const sEAXReverbParameters& getEAXReverbParameters() const = 0;
53 
55 
57  virtual void setEAXReverbParameters(const sEAXReverbParameters& param) = 0;
58 
60  virtual const sReverbParameters& getReverbParameters() const = 0;
61 
63 
65  virtual void setReverbParameters(const sReverbParameters& param) = 0;
66 
68  virtual const sChorusParameters& getChorusParameters() const = 0;
69 
71 
73  virtual void setChorusParameters(const sChorusParameters& param) = 0;
74 
76  virtual const sDistortionParameters& getDistortionParameters() const = 0;
77 
79 
81  virtual void setDistortionParameters(const sDistortionParameters& param) = 0;
82 
84  virtual const sEchoParameters& getEchoParameters() const = 0;
85 
87 
89  virtual void setEchoParameters(const sEchoParameters& param) = 0;
90 
92  virtual const sFlangerParameters& getFlangerParameters() const = 0;
93 
95 
97  virtual void setFlangerParameters(const sFlangerParameters& param) = 0;
98 
100  virtual const sFrequencyShiftParameters& getFrequencyShiftParameters() const = 0;
101 
103 
105  virtual void setFrequencyShiftParameters(const sFrequencyShiftParameters& param) = 0;
106 
108  virtual const sVocalMorpherParameters& getVocalMorpherParameters() const = 0;
109 
111 
113  virtual void setVocalMorpherParameters(const sVocalMorpherParameters& param) = 0;
114 
116  virtual const sPitchShifterParameters& getPitchShifterParameters() const = 0;
117 
119 
121  virtual void setPitchShifterParameters(const sPitchShifterParameters& param) = 0;
122 
124  virtual const sRingModulatorParameters& getRingModulatorParameters() const = 0;
125 
127 
129  virtual void setRingModulatorParameters(const sRingModulatorParameters& param) = 0;
130 
132  virtual const sAutowahParameters& getAutowahParameters() const = 0;
133 
135 
137  virtual void setAutowahParameters(const sAutowahParameters& param) = 0;
138 
140  virtual const sCompressorParameters& getCompressorParameters() const = 0;
141 
143 
145  virtual void setCompressorParameters(const sCompressorParameters& param) = 0;
146 
148  virtual const sEqualizerParameters& getEqualizerParameters() const = 0;
149 
151 
153  virtual void setEqualizerParameters(const sEqualizerParameters& param) = 0;
154 
156 
158  virtual float getMasterVolume() const = 0;
159 
161 
163  virtual void setMasterVolume(const float& volume) = 0;
164 
166  virtual bool isIgnoringAttenuation() const = 0;
167 
169 
171  virtual void ignoreAttenuation(const bool& ignore) = 0;
172 
174  virtual IFilter* getFilter() const = 0;
175 
177 
179  virtual void attachFilter(IFilter* filter) = 0;
180 
182  virtual void removeFilter() = 0;
183 
185  virtual unsigned int getLastUpdated() const = 0;
186 
188  virtual bool isValid() const = 0;
189  };
190 };
191 
192 #endif