cAudio  2.3.0
3d Audio Engine
cAudioEffects.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 "cAudioDefines.h"
8 
9 #if CAUDIO_EFX_ENABLED == 1
10 
11 #include "cMutex.h"
12 #include "cEFXFunctions.h"
13 #include "IAudioEffects.h"
14 #include "cSTLAllocator.h"
15 #include "cAudioString.h"
16 
17 namespace cAudio
18 {
19  class cAudioEffects : public IAudioEffects
20  {
21  public:
22  cAudioEffects();
23  virtual ~cAudioEffects();
24 
25  virtual IEffect* createEffect();
26  virtual IFilter* createFilter();
27 
28  virtual unsigned int getMaxEffectsSupported() const;
29  virtual bool isEffectSupported(const EffectTypes& type) const;
30  virtual bool isFilterSupported(const FilterTypes& type) const;
31 
32  virtual bool addEAXReverbEffectPreset(const char* name, const sEAXReverbParameters& setting);
33  virtual bool addReverbEffectPreset(const char* name, const sReverbParameters& setting);
34  virtual bool addChorusEffectPreset(const char* name, const sChorusParameters& setting);
35  virtual bool addDistortionEffectPreset(const char* name, const sDistortionParameters& setting);
36  virtual bool addEchoEffectPreset(const char* name, const sEchoParameters& setting);
37  virtual bool addFlangerEffectPreset(const char* name, const sFlangerParameters& setting);
38  virtual bool addFrequencyShiftEffectPreset(const char* name, const sFrequencyShiftParameters& setting);
39  virtual bool addVocalMorpherEffectPreset(const char* name, const sVocalMorpherParameters& setting);
40  virtual bool addPitchShifterEffectPreset(const char* name, const sPitchShifterParameters& setting);
41  virtual bool addRingModulatorEffectPreset(const char* name, const sRingModulatorParameters& setting);
42  virtual bool addAutowahEffectPreset(const char* name, const sAutowahParameters& setting);
43  virtual bool addCompressorEffectPreset(const char* name, const sCompressorParameters& setting);
44  virtual bool addEqualizerEffectPreset(const char* name, const sEqualizerParameters& setting);
45 
46  virtual sEAXReverbParameters getEAXReverbEffectPreset(const char* name);
47  virtual sReverbParameters getReverbEffectPreset(const char* name);
48  virtual sChorusParameters getChorusEffectPreset(const char* name);
49  virtual sDistortionParameters getDistortionEffectPreset(const char* name);
50  virtual sEchoParameters getEchoEffectPreset(const char* name);
51  virtual sFlangerParameters getFlangerEffectPreset(const char* name);
52  virtual sFrequencyShiftParameters getFrequencyShiftEffectPreset(const char* name);
53  virtual sVocalMorpherParameters getVocalMorpherEffectPreset(const char* name);
54  virtual sPitchShifterParameters getPitchShifterEffectPreset(const char* name);
55  virtual sRingModulatorParameters getRingModulatorEffectPreset(const char* name);
56  virtual sAutowahParameters getAutowahEffectPreset(const char* name);
57  virtual sCompressorParameters getCompressorEffectPreset(const char* name);
58  virtual sEqualizerParameters getEqualizerEffectPreset(const char* name);
59 
60  virtual void removeEffectPreset(const EffectTypes& type, const char* name);
61  virtual bool isEffectPresetRegistered(const EffectTypes& type, const char* name);
62  virtual void removeAllEffectPresets(const EffectTypes& type);
63 
64  cEFXFunctions* getEFXInterface();
65  void checkEFXSupportDetails();
66 
67  private:
68  cAudioMutex Mutex;
69  cEFXFunctions EFXInterface;
70  unsigned int MaxEffectsSupported;
71  bool SupportedEffects[EET_COUNT];
72  bool SupportedFilters[EFT_COUNT];
73 
74  cAudioMap<cAudioString, sEAXReverbParameters>::Type EAXReverbPresets;
75  cAudioMap<cAudioString, sReverbParameters>::Type ReverbPresets;
76  cAudioMap<cAudioString, sChorusParameters>::Type ChorusPresets;
77  cAudioMap<cAudioString, sDistortionParameters>::Type DistortionPresets;
78  cAudioMap<cAudioString, sEchoParameters>::Type EchoPresets;
79  cAudioMap<cAudioString, sFlangerParameters>::Type FlangerPresets;
80  cAudioMap<cAudioString, sFrequencyShiftParameters>::Type FrequencyShiftPresets;
81  cAudioMap<cAudioString, sVocalMorpherParameters>::Type VocalMorpherPresets;
82  cAudioMap<cAudioString, sPitchShifterParameters>::Type PitchShifterPresets;
83  cAudioMap<cAudioString, sRingModulatorParameters>::Type RingModulatorPresets;
84  cAudioMap<cAudioString, sAutowahParameters>::Type AutowahPresets;
85  cAudioMap<cAudioString, sCompressorParameters>::Type CompressorPresets;
86  cAudioMap<cAudioString, sEqualizerParameters>::Type EqualizerPresets;
87  };
88 };
89 
90 #endif
Main namespace for the entire cAudio library.
Definition: cAudioCapture.h:15