Skip to content

Commit 27f14c4

Browse files
authored
ALAudioRenderer: added config constants for HighPassFilter and BandPassFilter
1 parent 127446b commit 27f14c4

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

jme3-core/src/main/java/com/jme3/audio/openal/ALAudioRenderer.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,10 @@
4040
import static com.jme3.audio.openal.AL.*;
4141

4242
import com.jme3.audio.AudioStream;
43+
import com.jme3.audio.BandPassFilter;
4344
import com.jme3.audio.Environment;
4445
import com.jme3.audio.Filter;
46+
import com.jme3.audio.HighPassFilter;
4547
import com.jme3.audio.Listener;
4648
import com.jme3.audio.ListenerParam;
4749
import com.jme3.audio.LowPassFilter;
@@ -403,10 +405,25 @@ private void updateFilter(Filter f) {
403405
efx.alFilteri(id, EFX.AL_FILTER_TYPE, EFX.AL_FILTER_LOWPASS);
404406
efx.alFilterf(id, EFX.AL_LOWPASS_GAIN, lowPass.getVolume());
405407
efx.alFilterf(id, EFX.AL_LOWPASS_GAINHF, lowPass.getHighFreqVolume());
406-
f.clearUpdateNeeded();
408+
409+
} else if (f instanceof HighPassFilter) {
410+
HighPassFilter highPass = (HighPassFilter) f;
411+
efx.alFilteri(id, EFX.AL_FILTER_TYPE, EFX.AL_FILTER_HIGHPASS);
412+
efx.alFilterf(id, EFX.AL_HIGHPASS_GAIN, highPass.getVolume());
413+
efx.alFilterf(id, EFX.AL_HIGHPASS_GAINLF, highPass.getLowFreqVolume());
414+
415+
} else if (f instanceof BandPassFilter) {
416+
BandPassFilter bandPass = (BandPassFilter) f;
417+
efx.alFilteri(id, EFX.AL_FILTER_TYPE, EFX.AL_FILTER_BANDPASS);
418+
efx.alFilterf(id, EFX.AL_BANDPASS_GAIN, bandPass.getVolume());
419+
efx.alFilterf(id, EFX.AL_BANDPASS_GAINHF, bandPass.getHighFreqVolume());
420+
efx.alFilterf(id, EFX.AL_BANDPASS_GAINLF, bandPass.getLowFreqVolume());
421+
407422
} else {
408423
throw new UnsupportedOperationException("Unsupported filter type: " + f.getClass().getName());
409424
}
425+
426+
f.clearUpdateNeeded();
410427
}
411428

412429
/**

0 commit comments

Comments
 (0)