1 module polyplex.core.audio.effects.reverb; 2 import polyplex.core.audio.effect; 3 import openal; 4 5 public class ReverbEffect : AudioEffect { 6 public: 7 this() { 8 super(EffectType.Reverb); 9 setupDone(); 10 } 11 12 @property float Decay() { 13 ALfloat val; 14 alGetEffectf(id, AL_REVERB_DECAY_TIME, &val); 15 return val; 16 } 17 18 @property void Decay(ALfloat val) { 19 alEffectf(id, AL_REVERB_DECAY_TIME, val); 20 } 21 22 @property float DecayHighFreqRatio() { 23 ALfloat val; 24 alGetEffectf(id, AL_REVERB_DECAY_HFRATIO, &val); 25 return val; 26 } 27 28 @property void DecayHighFreqRatio(ALfloat val) { 29 alEffectf(id, AL_REVERB_DECAY_HFRATIO, val); 30 } 31 32 @property float Density() { 33 ALfloat val; 34 alGetEffectf(id, AL_REVERB_DENSITY, &val); 35 return val; 36 } 37 38 @property void Density(ALfloat val) { 39 alEffectf(id, AL_REVERB_DENSITY, val); 40 } 41 42 @property float Diffusion() { 43 ALfloat val; 44 alGetEffectf(id, AL_REVERB_DIFFUSION, &val); 45 return val; 46 } 47 48 @property void Diffusion(ALfloat val) { 49 alEffectf(id, AL_REVERB_DIFFUSION, val); 50 } 51 52 @property float Gain() { 53 ALfloat val; 54 alGetEffectf(id, AL_REVERB_GAIN, &val); 55 return val; 56 } 57 58 @property void Gain(ALfloat val) { 59 alEffectf(id, AL_REVERB_GAIN, val); 60 } 61 62 @property float GainHighFreq() { 63 ALfloat val; 64 alGetEffectf(id, AL_REVERB_GAINHF, &val); 65 return val; 66 } 67 68 @property void GainHighFreq(ALfloat val) { 69 alEffectf(id, AL_REVERB_GAINHF, val); 70 } 71 72 @property float ReflectionsGain() { 73 ALfloat val; 74 alGetEffectf(id, AL_REVERB_REFLECTIONS_GAIN, &val); 75 return val; 76 } 77 78 @property void ReflectionsGain(ALfloat val) { 79 alEffectf(id, AL_REVERB_REFLECTIONS_GAIN, val); 80 } 81 82 @property float ReflectionsDelay() { 83 ALfloat val; 84 alGetEffectf(id, AL_REVERB_REFLECTIONS_DELAY, &val); 85 return val; 86 } 87 88 @property void ReflectionsDelay(ALfloat val) { 89 alEffectf(id, AL_REVERB_REFLECTIONS_DELAY, val); 90 } 91 92 @property float LateReverbGain() { 93 ALfloat val; 94 alGetEffectf(id, AL_REVERB_LATE_REVERB_GAIN, &val); 95 return val; 96 } 97 98 @property void LateReverbGain(ALfloat val) { 99 alEffectf(id, AL_REVERB_LATE_REVERB_GAIN, val); 100 } 101 102 @property float LateReverbDelay() { 103 ALfloat val; 104 alGetEffectf(id, AL_REVERB_LATE_REVERB_DELAY, &val); 105 return val; 106 } 107 108 @property void LateReverbDelay(ALfloat val) { 109 alEffectf(id, AL_REVERB_LATE_REVERB_DELAY, val); 110 } 111 112 @property float AirAbsorbtionGainHighFreq() { 113 ALfloat val; 114 alGetEffectf(id, AL_REVERB_AIR_ABSORPTION_GAINHF, &val); 115 return val; 116 } 117 118 @property void AirAbsorbtionGainHighFreq(ALfloat val) { 119 alEffectf(id, AL_REVERB_AIR_ABSORPTION_GAINHF, val); 120 } 121 122 @property float RoomRollOffFactor() { 123 ALfloat val; 124 alGetEffectf(id, AL_REVERB_ROOM_ROLLOFF_FACTOR, &val); 125 return val; 126 } 127 128 @property void RoomRollOffFactor(ALfloat val) { 129 alEffectf(id, AL_REVERB_ROOM_ROLLOFF_FACTOR, val); 130 } 131 132 @property float DecayHighFreqLimit() { 133 ALfloat val; 134 alGetEffectf(id, AL_REVERB_DECAY_HFLIMIT, &val); 135 return val; 136 } 137 138 @property void DecayHighFreqLimit(ALfloat val) { 139 alEffectf(id, AL_REVERB_DECAY_HFLIMIT, val); 140 } 141 }