Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members

ik_ISoundEffectControl.h

Go to the documentation of this file.
00001 // Copyright (C) 2002-2009 Nikolaus Gebhardt
00002 // This file is part of the "irrKlang" library.
00003 // For conditions of distribution and use, see copyright notice in irrKlang.h
00004 
00005 #ifndef __I_IRRKLANG_SOUND_EFFECT_CONTROL_H_INCLUDED__
00006 #define __I_IRRKLANG_SOUND_EFFECT_CONTROL_H_INCLUDED__
00007 
00008 #include "ik_IVirtualRefCounted.h"
00009 #include "ik_vec3d.h"
00010 
00011 
00012 namespace irrklang
00013 {
00015 
00026         class ISoundEffectControl
00027         {
00028         public:
00029 
00031                 virtual void disableAllEffects() = 0;
00032 
00034 
00046                 virtual bool enableChorusSoundEffect(ik_f32 fWetDryMix = 50,
00047                                                                                         ik_f32 fDepth = 10,
00048                                                                                         ik_f32 fFeedback = 25,
00049                                                                                         ik_f32 fFrequency = 1.1,
00050                                                                                         bool sinusWaveForm = true,
00051                                                                                         ik_f32 fDelay = 16,
00052                                                                                         ik_s32 lPhase = 90) = 0;
00053 
00055                 virtual void disableChorusSoundEffect() = 0;
00056 
00058                 virtual bool isChorusSoundEffectEnabled() = 0;
00059 
00061 
00070                 virtual bool enableCompressorSoundEffect( ik_f32 fGain = 0,
00071                                                                                                 ik_f32 fAttack = 10,
00072                                                                                                 ik_f32 fRelease = 200,
00073                                                                                                 ik_f32 fThreshold = -20,
00074                                                                                                 ik_f32 fRatio = 3,
00075                                                                                                 ik_f32 fPredelay = 4) = 0;
00076 
00078                 virtual void disableCompressorSoundEffect() = 0;
00079 
00081                 virtual bool isCompressorSoundEffectEnabled() = 0;
00082 
00084 
00093                 virtual bool enableDistortionSoundEffect(ik_f32 fGain = -18,
00094                                                                                                 ik_f32 fEdge = 15,
00095                                                                                                 ik_f32 fPostEQCenterFrequency = 2400,
00096                                                                                                 ik_f32 fPostEQBandwidth = 2400,
00097                                                                                                 ik_f32 fPreLowpassCutoff = 8000) = 0;
00098 
00100                 virtual void disableDistortionSoundEffect() = 0;
00101 
00103                 virtual bool isDistortionSoundEffectEnabled() = 0;
00104 
00106 
00114                 virtual bool enableEchoSoundEffect(ik_f32 fWetDryMix = 50,
00115                                                                                         ik_f32 fFeedback = 50,
00116                                                                                         ik_f32 fLeftDelay = 500,
00117                                                                                         ik_f32 fRightDelay = 500,
00118                                                                                         ik_s32 lPanDelay = 0) = 0;
00119 
00121                 virtual void disableEchoSoundEffect() = 0;
00122 
00124                 virtual bool isEchoSoundEffectEnabled() = 0;
00125 
00127 
00141                 virtual bool enableFlangerSoundEffect(ik_f32 fWetDryMix = 50,
00142                                                                                         ik_f32 fDepth = 100,
00143                                                                                         ik_f32 fFeedback = -50,
00144                                                                                         ik_f32 fFrequency = 0.25f,
00145                                                                                         bool triangleWaveForm = true,
00146                                                                                         ik_f32 fDelay = 2,
00147                                                                                         ik_s32 lPhase = 0) = 0;
00148 
00150                 virtual void disableFlangerSoundEffect() = 0;
00151 
00153                 virtual bool isFlangerSoundEffectEnabled() = 0;
00154 
00156 
00161                 virtual bool enableGargleSoundEffect(ik_s32 rateHz = 20, bool sinusWaveForm = true) = 0;
00162 
00164                 virtual void disableGargleSoundEffect() = 0;
00165 
00167                 virtual bool isGargleSoundEffectEnabled() = 0;
00168 
00170 
00185                 virtual bool enableI3DL2ReverbSoundEffect(ik_s32 lRoom = -1000,
00186                                                                                                 ik_s32 lRoomHF = -100,
00187                                                                                                 ik_f32 flRoomRolloffFactor = 0,
00188                                                                                                 ik_f32 flDecayTime = 1.49f,
00189                                                                                                 ik_f32 flDecayHFRatio = 0.83f,
00190                                                                                                 ik_s32 lReflections = -2602,
00191                                                                                                 ik_f32 flReflectionsDelay = 0.007f,
00192                                                                                                 ik_s32 lReverb = 200,
00193                                                                                                 ik_f32 flReverbDelay = 0.011f,
00194                                                                                                 ik_f32 flDiffusion = 100.0f,
00195                                                                                                 ik_f32 flDensity = 100.0f,
00196                                                                                                 ik_f32 flHFReference = 5000.0f ) = 0;
00197 
00199                 virtual void disableI3DL2ReverbSoundEffect() = 0;
00200 
00202                 virtual bool isI3DL2ReverbSoundEffectEnabled() = 0;
00203 
00205 
00211                 virtual bool enableParamEqSoundEffect(ik_f32 fCenter = 8000,
00212                                                                                         ik_f32 fBandwidth = 12,
00213                                                                                         ik_f32 fGain = 0) = 0;
00214 
00216                 virtual void disableParamEqSoundEffect() = 0;
00217 
00219                 virtual bool isParamEqSoundEffectEnabled() = 0;
00220 
00222 
00228                 virtual bool enableWavesReverbSoundEffect(ik_f32 fInGain = 0,
00229                                                                                         ik_f32 fReverbMix = 0,
00230                                                                                         ik_f32 fReverbTime = 1000,
00231                                                                                         ik_f32 fHighFreqRTRatio = 0.001f) = 0;
00232 
00234                 virtual void disableWavesReverbSoundEffect() = 0;
00235 
00237                 virtual bool isWavesReverbSoundEffectEnabled() = 0;
00238         };
00239 
00240 } // end namespace irrklang
00241 
00242 
00243 #endif

irrKlang Audio Library
The irrKlang Engine Documentation © 2003-2007 by Nikolaus Gebhardt. Generated on Fri Jan 2 15:37:05 2009 by Doxygen (1.5.4)