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 }