1 module polyplex.core.audio.effects.eq;
2 import polyplex.core.audio.effects;
3 import polyplex.core.audio.effect;
4 import openal;
5 
6 /// An equalizer.
7 public class EqualizerEffect : AudioEffect {
8 public:
9     this() {
10         super(EffectType.Equalizer);
11         setupDone();
12     }
13 
14     // LOW
15 
16     @property float LowGain() {
17         ALfloat val;
18         alGetEffectf(id, AL_EQUALIZER_LOW_GAIN, &val);
19         return val;
20     }
21 
22     @property void LowGain(ALfloat val) {
23         alEffectf(id, AL_EQUALIZER_LOW_GAIN, val);
24     }
25 
26     @property float LowCutoff() {
27         ALfloat val;
28         alGetEffectf(id, AL_EQUALIZER_LOW_CUTOFF, &val);
29         return val;
30     }
31 
32     @property void LowCutoff(ALfloat val) {
33         alEffectf(id, AL_EQUALIZER_LOW_CUTOFF, val);
34     }
35 
36     // MID 1
37 
38     @property float Mid1Gain() {
39         ALfloat val;
40         alGetEffectf(id, AL_EQUALIZER_MID1_GAIN, &val);
41         return val;
42     }
43 
44     @property void Mid1Gain(ALfloat val) {
45         alEffectf(id, AL_EQUALIZER_MID1_GAIN, val);
46     }
47 
48     @property float Mid1Center() {
49         ALfloat val;
50         alGetEffectf(id, AL_EQUALIZER_MID1_CENTER, &val);
51         return val;
52     }
53 
54     @property void Mid1Center(ALfloat val) {
55         alEffectf(id, AL_EQUALIZER_MID1_CENTER, val);
56     }
57 
58     @property float Mid1Width() {
59         ALfloat val;
60         alGetEffectf(id, AL_EQUALIZER_MID1_WIDTH, &val);
61         return val;
62     }
63 
64     @property void Mid1Width(ALfloat val) {
65         alEffectf(id, AL_EQUALIZER_MID1_WIDTH, val);
66     }
67 
68     // MID 2
69 
70     @property float Mid2Gain() {
71         ALfloat val;
72         alGetEffectf(id, AL_EQUALIZER_MID2_GAIN, &val);
73         return val;
74     }
75 
76     @property void Mid2Gain(ALfloat val) {
77         alEffectf(id, AL_EQUALIZER_MID2_GAIN, val);
78     }
79 
80     @property float Mid2Center() {
81         ALfloat val;
82         alGetEffectf(id, AL_EQUALIZER_MID2_CENTER, &val);
83         return val;
84     }
85 
86     @property void Mid2Center(ALfloat val) {
87         alEffectf(id, AL_EQUALIZER_MID2_CENTER, val);
88     }
89 
90     @property float Mid2Width() {
91         ALfloat val;
92         alGetEffectf(id, AL_EQUALIZER_MID2_WIDTH, &val);
93         return val;
94     }
95 
96     @property void Mid2Width(ALfloat val) {
97         alEffectf(id, AL_EQUALIZER_MID2_WIDTH, val);
98     }
99 
100     // HIGH
101 
102     @property float HighGain() {
103         ALfloat val;
104         alGetEffectf(id, AL_EQUALIZER_HIGH_GAIN, &val);
105         return val;
106     }
107 
108     @property void HighGain(ALfloat val) {
109         alEffectf(id, AL_EQUALIZER_HIGH_GAIN, val);
110     }
111 
112     @property float HighCutoff() {
113         ALfloat val;
114         alGetEffectf(id, AL_EQUALIZER_HIGH_CUTOFF, &val);
115         return val;
116     }
117 
118     @property void HighCutoff(ALfloat val) {
119         alEffectf(id, AL_EQUALIZER_HIGH_CUTOFF, val);
120     }
121 }