1 module polyplex.core.audio.effects.flanger; 2 import polyplex.core.audio.effects; 3 import polyplex.core.audio.effect; 4 import openal; 5 6 /// A Flanger 7 public class FlangerEffect : AudioEffect { 8 public: 9 this() { 10 super(EffectType.Flanger); 11 setupDone(); 12 } 13 14 @property WaveformType Waveform() { 15 ALenum val; 16 alGetEffecti(id, AL_FLANGER_WAVEFORM, &val); 17 return cast(WaveformType)val; 18 } 19 20 @property void Waveform(WaveformType val) { 21 alEffecti(id, AL_FLANGER_WAVEFORM, cast(ALuint)val); 22 } 23 24 @property int Phase() { 25 ALint val; 26 alGetEffecti(id, AL_FLANGER_PHASE, &val); 27 return cast(int)val; 28 } 29 30 @property void Phase(int val) { 31 alEffecti(id, AL_FLANGER_PHASE, cast(ALint)val); 32 } 33 34 @property float Rate() { 35 ALfloat val; 36 alGetEffectf(id, AL_FLANGER_RATE, &val); 37 return val; 38 } 39 40 @property void Rate(ALfloat val) { 41 alEffectf(id, AL_FLANGER_RATE, val); 42 } 43 44 @property float Depth() { 45 ALfloat val; 46 alGetEffectf(id, AL_FLANGER_DEPTH, &val); 47 return val; 48 } 49 50 @property void Depth(ALfloat val) { 51 alEffectf(id, AL_FLANGER_DEPTH, val); 52 } 53 54 @property float Feedback() { 55 ALfloat val; 56 alGetEffectf(id, AL_FLANGER_FEEDBACK, &val); 57 return val; 58 } 59 60 @property void Feedback(ALfloat val) { 61 alEffectf(id, AL_FLANGER_FEEDBACK, val); 62 } 63 64 @property float Delay() { 65 ALfloat val; 66 alGetEffectf(id, AL_FLANGER_DELAY, &val); 67 return val; 68 } 69 70 @property void Delay(ALfloat val) { 71 alEffectf(id, AL_FLANGER_DELAY, val); 72 } 73 }