1 module polyplex.core.audio.effects.echo; 2 import polyplex.core.audio.effects; 3 import polyplex.core.audio.effect; 4 import openal; 5 6 /// An Echo 7 public class EchoEffect : AudioEffect { 8 public: 9 this() { 10 super(EffectType.Echo); 11 setupDone(); 12 } 13 14 @property float Delay() { 15 ALfloat val; 16 alGetEffectf(id, AL_ECHO_DELAY, &val); 17 return val; 18 } 19 20 @property void Delay(ALfloat val) { 21 alEffectf(id, AL_ECHO_DELAY, val); 22 } 23 24 @property float LRDelay() { 25 ALfloat val; 26 alGetEffectf(id, AL_ECHO_LRDELAY, &val); 27 return val; 28 } 29 30 @property void LRDelay(ALfloat val) { 31 alEffectf(id, AL_ECHO_LRDELAY, val); 32 } 33 34 @property float Damping() { 35 ALfloat val; 36 alGetEffectf(id, AL_ECHO_DAMPING, &val); 37 return val; 38 } 39 40 @property void Damping(ALfloat val) { 41 alEffectf(id, AL_ECHO_DAMPING, val); 42 } 43 44 @property float Feedback() { 45 ALfloat val; 46 alGetEffectf(id, AL_ECHO_FEEDBACK, &val); 47 return val; 48 } 49 50 @property void Feedback(ALfloat val) { 51 alEffectf(id, AL_ECHO_FEEDBACK, val); 52 } 53 54 @property float Spread() { 55 ALfloat val; 56 alGetEffectf(id, AL_ECHO_SPREAD, &val); 57 return val; 58 } 59 60 @property void Spread(ALfloat val) { 61 alEffectf(id, AL_ECHO_SPREAD, val); 62 } 63 }