cAudioEffects.h

00001 // Copyright (c) 2008-2010 Raynaldo (Wildicv) Rivera, Joshua (Dark_Kilauea) Jones
00002 // This file is part of the "cAudio Engine"
00003 // For conditions of distribution and use, see copyright notice in cAudio.h
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 
 All Classes Namespaces Functions Variables Enumerations

Generated on Sat Feb 20 22:55:07 2010 for cAudio by  doxygen 1.6.2