cAudio 2.3.0
3d Audio Engine
Loading...
Searching...
No Matches
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
17namespace 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:16