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 }