IEffect.h
00001
00002
00003
00004
00005 #ifndef IEFFECT_H
00006 #define IEFFECT_H
00007
00008 #include "IRefCounted.h"
00009 #include "IFilter.h"
00010 #include "IEffectParameters.h"
00011 #include "cAudioDefines.h"
00012
00013 #ifdef CAUDIO_EFX_ENABLED
00014
00015 namespace cAudio
00016 {
00018 enum EffectTypes
00019 {
00020 EET_NULL,
00021 EET_EAX_REVERB,
00022 EET_REVERB,
00023 EET_CHORUS,
00024 EET_DISTORTION,
00025 EET_ECHO,
00026 EET_FLANGER,
00027 EET_FREQUENCY_SHIFTER,
00028 EET_VOCAL_MORPHER,
00029 EET_PITCH_SHIFTER,
00030 EET_RING_MODULATOR,
00031 EET_AUTOWAH,
00032 EET_COMPRESSOR,
00033 EET_EQUALIZER,
00034 EET_COUNT
00035 };
00036
00038 class IEffect : public IRefCounted
00039 {
00040 public:
00041 IEffect() { }
00042 virtual ~IEffect() { }
00043
00045 virtual const EffectTypes& getType() const = 0;
00046
00048
00050 virtual void setType(const EffectTypes& type) = 0;
00051
00053 virtual const sEAXReverbParameters& getEAXReverbParameters() const = 0;
00054
00056
00058 virtual void setEAXReverbParameters(const sEAXReverbParameters& param) = 0;
00059
00061 virtual const sReverbParameters& getReverbParameters() const = 0;
00062
00064
00066 virtual void setReverbParameters(const sReverbParameters& param) = 0;
00067
00069 virtual const sChorusParameters& getChorusParameters() const = 0;
00070
00072
00074 virtual void setChorusParameters(const sChorusParameters& param) = 0;
00075
00077 virtual const sDistortionParameters& getDistortionParameters() const = 0;
00078
00080
00082 virtual void setDistortionParameters(const sDistortionParameters& param) = 0;
00083
00085 virtual const sEchoParameters& getEchoParameters() const = 0;
00086
00088
00090 virtual void setEchoParameters(const sEchoParameters& param) = 0;
00091
00093 virtual const sFlangerParameters& getFlangerParameters() const = 0;
00094
00096
00098 virtual void setFlangerParameters(const sFlangerParameters& param) = 0;
00099
00101 virtual const sFrequencyShiftParameters& getFrequencyShiftParameters() const = 0;
00102
00104
00106 virtual void setFrequencyShiftParameters(const sFrequencyShiftParameters& param) = 0;
00107
00109 virtual const sVocalMorpherParameters& getVocalMorpherParameters() const = 0;
00110
00112
00114 virtual void setVocalMorpherParameters(const sVocalMorpherParameters& param) = 0;
00115
00117 virtual const sPitchShifterParameters& getPitchShifterParameters() const = 0;
00118
00120
00122 virtual void setPitchShifterParameters(const sPitchShifterParameters& param) = 0;
00123
00125 virtual const sRingModulatorParameters& getRingModulatorParameters() const = 0;
00126
00128
00130 virtual void setRingModulatorParameters(const sRingModulatorParameters& param) = 0;
00131
00133 virtual const sAutowahParameters& getAutowahParameters() const = 0;
00134
00136
00138 virtual void setAutowahParameters(const sAutowahParameters& param) = 0;
00139
00141 virtual const sCompressorParameters& getCompressorParameters() const = 0;
00142
00144
00146 virtual void setCompressorParameters(const sCompressorParameters& param) = 0;
00147
00149 virtual const sEqualizerParameters& getEqualizerParameters() const = 0;
00150
00152
00154 virtual void setEqualizerParameters(const sEqualizerParameters& param) = 0;
00155
00157
00159 virtual float getMasterVolume() const = 0;
00160
00162
00164 virtual void setMasterVolume(const float& volume) = 0;
00165
00167 virtual bool isIgnoringAttenuation() const = 0;
00168
00170
00172 virtual void ignoreAttenuation(const bool& ignore) = 0;
00173
00175 virtual IFilter* getFilter() const = 0;
00176
00178
00180 virtual void attachFilter(IFilter* filter) = 0;
00181
00183 virtual void removeFilter() = 0;
00184
00186 virtual unsigned int getLastUpdated() const = 0;
00187
00189 virtual bool isValid() const = 0;
00190 };
00191 };
00192
00193 #endif
00194
00195 #endif