00001 // Copyright (C) 2002-2018 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
The irrKlang
Engine Documentation © 2003-2018 by Nikolaus Gebhardt. Generated
by Doxygen
(1.6.1) |