1 module polyplex.core.audio.effects.distortion;
2 import polyplex.core.audio.effects;
3 import polyplex.core.audio.effect;
4 import openal;
5 
6 /// An Distortion
7 public class DistortionEffect : AudioEffect {
8 public:
9     this() {
10         super(EffectType.Distortion);
11         setupDone();
12     }
13 
14     @property float Edge() {
15         ALfloat val;
16         alGetEffectf(id, AL_DISTORTION_EDGE, &val);
17         return val;
18     }
19 
20     @property void Edge(ALfloat val) {
21         alEffectf(id, AL_DISTORTION_EDGE, val);
22     }
23 
24     @property float Gain() {
25         ALfloat val;
26         alGetEffectf(id, AL_DISTORTION_GAIN, &val);
27         return val;
28     }
29 
30     @property void Gain(ALfloat val) {
31         alEffectf(id, AL_DISTORTION_GAIN, val);
32     }
33 
34     @property float LowpassCutoff() {
35         ALfloat val;
36         alGetEffectf(id, AL_DISTORTION_LOWPASS_CUTOFF, &val);
37         return val;
38     }
39 
40     @property void LowpassCutoff(ALfloat val) {
41         alEffectf(id, AL_DISTORTION_LOWPASS_CUTOFF, val);
42     }
43 
44     @property float EQCenter() {
45         ALfloat val;
46         alGetEffectf(id, AL_DISTORTION_EQCENTER, &val);
47         return val;
48     }
49 
50     @property void EQCenter(ALfloat val) {
51         alEffectf(id, AL_DISTORTION_EQCENTER, val);
52     }
53 
54     @property float EQBandwidth() {
55         ALfloat val;
56         alGetEffectf(id, AL_DISTORTION_EQBANDWIDTH, &val);
57         return val;
58     }
59 
60     @property void EQBandwidth(ALfloat val) {
61         alEffectf(id, AL_DISTORTION_EQBANDWIDTH, val);
62     }
63 }