|
40 | 40 | import static com.jme3.audio.openal.AL.*; |
41 | 41 |
|
42 | 42 | import com.jme3.audio.AudioStream; |
| 43 | +import com.jme3.audio.BandPassFilter; |
43 | 44 | import com.jme3.audio.Environment; |
44 | 45 | import com.jme3.audio.Filter; |
| 46 | +import com.jme3.audio.HighPassFilter; |
45 | 47 | import com.jme3.audio.Listener; |
46 | 48 | import com.jme3.audio.ListenerParam; |
47 | 49 | import com.jme3.audio.LowPassFilter; |
@@ -403,10 +405,25 @@ private void updateFilter(Filter f) { |
403 | 405 | efx.alFilteri(id, EFX.AL_FILTER_TYPE, EFX.AL_FILTER_LOWPASS); |
404 | 406 | efx.alFilterf(id, EFX.AL_LOWPASS_GAIN, lowPass.getVolume()); |
405 | 407 | 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 | + |
407 | 422 | } else { |
408 | 423 | throw new UnsupportedOperationException("Unsupported filter type: " + f.getClass().getName()); |
409 | 424 | } |
| 425 | + |
| 426 | + f.clearUpdateNeeded(); |
410 | 427 | } |
411 | 428 |
|
412 | 429 | /** |
|
0 commit comments