cAudioEffects.h
00001
00002
00003
00004
00005 #ifndef CAUDIOEFFECTS_H
00006 #define CAUDIOEFFECTS_H
00007
00008 #include "../include/IAudioEffects.h"
00009 #include "../Headers/cMutex.h"
00010 #include "../Headers/cEFXFunctions.h"
00011 #include <map>
00012
00013 #ifdef CAUDIO_EFX_ENABLED
00014
00015 namespace cAudio
00016 {
00017 class cAudioEffects : public IAudioEffects
00018 {
00019 public:
00020 cAudioEffects();
00021 virtual ~cAudioEffects();
00022
00023 virtual IEffect* createEffect();
00024 virtual IFilter* createFilter();
00025
00026 virtual unsigned int getMaxEffectsSupported() const;
00027 virtual bool isEffectSupported(const EffectTypes& type) const;
00028 virtual bool isFilterSupported(const FilterTypes& type) const;
00029
00030 virtual bool addEAXReverbEffectPreset(const char* name, const sEAXReverbParameters& setting);
00031 virtual bool addReverbEffectPreset(const char* name, const sReverbParameters& setting);
00032 virtual bool addChorusEffectPreset(const char* name, const sChorusParameters& setting);
00033 virtual bool addDistortionEffectPreset(const char* name, const sDistortionParameters& setting);
00034 virtual bool addEchoEffectPreset(const char* name, const sEchoParameters& setting);
00035 virtual bool addFlangerEffectPreset(const char* name, const sFlangerParameters& setting);
00036 virtual bool addFrequencyShiftEffectPreset(const char* name, const sFrequencyShiftParameters& setting);
00037 virtual bool addVocalMorpherEffectPreset(const char* name, const sVocalMorpherParameters& setting);
00038 virtual bool addPitchShifterEffectPreset(const char* name, const sPitchShifterParameters& setting);
00039 virtual bool addRingModulatorEffectPreset(const char* name, const sRingModulatorParameters& setting);
00040 virtual bool addAutowahEffectPreset(const char* name, const sAutowahParameters& setting);
00041 virtual bool addCompressorEffectPreset(const char* name, const sCompressorParameters& setting);
00042 virtual bool addEqualizerEffectPreset(const char* name, const sEqualizerParameters& setting);
00043
00044 virtual sEAXReverbParameters getEAXReverbEffectPreset(const char* name);
00045 virtual sReverbParameters getReverbEffectPreset(const char* name);
00046 virtual sChorusParameters getChorusEffectPreset(const char* name);
00047 virtual sDistortionParameters getDistortionEffectPreset(const char* name);
00048 virtual sEchoParameters getEchoEffectPreset(const char* name);
00049 virtual sFlangerParameters getFlangerEffectPreset(const char* name);
00050 virtual sFrequencyShiftParameters getFrequencyShiftEffectPreset(const char* name);
00051 virtual sVocalMorpherParameters getVocalMorpherEffectPreset(const char* name);
00052 virtual sPitchShifterParameters getPitchShifterEffectPreset(const char* name);
00053 virtual sRingModulatorParameters getRingModulatorEffectPreset(const char* name);
00054 virtual sAutowahParameters getAutowahEffectPreset(const char* name);
00055 virtual sCompressorParameters getCompressorEffectPreset(const char* name);
00056 virtual sEqualizerParameters getEqualizerEffectPreset(const char* name);
00057
00058 virtual void removeEffectPreset(const EffectTypes& type, const char* name);
00059 virtual bool isEffectPresetRegistered(const EffectTypes& type, const char* name);
00060 virtual void removeAllEffectPresets(const EffectTypes& type);
00061
00062 cEFXFunctions* getEFXInterface();
00063 void checkEFXSupportDetails();
00064
00065 private:
00066 cAudioMutex Mutex;
00067 cEFXFunctions EFXInterface;
00068 unsigned int MaxEffectsSupported;
00069 bool SupportedEffects[EET_COUNT];
00070 bool SupportedFilters[EFT_COUNT];
00071
00072 std::map<std::string, sEAXReverbParameters> EAXReverbPresets;
00073 std::map<std::string, sReverbParameters> ReverbPresets;
00074 std::map<std::string, sChorusParameters> ChorusPresets;
00075 std::map<std::string, sDistortionParameters> DistortionPresets;
00076 std::map<std::string, sEchoParameters> EchoPresets;
00077 std::map<std::string, sFlangerParameters> FlangerPresets;
00078 std::map<std::string, sFrequencyShiftParameters> FrequencyShiftPresets;
00079 std::map<std::string, sVocalMorpherParameters> VocalMorpherPresets;
00080 std::map<std::string, sPitchShifterParameters> PitchShifterPresets;
00081 std::map<std::string, sRingModulatorParameters> RingModulatorPresets;
00082 std::map<std::string, sAutowahParameters> AutowahPresets;
00083 std::map<std::string, sCompressorParameters> CompressorPresets;
00084 std::map<std::string, sEqualizerParameters> EqualizerPresets;
00085 };
00086 };
00087
00088 #endif
00089
00090 #endif