Fixes remaining compile errors in JoalAudioRenderer

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@10453 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
3.0
jul..om 12 years ago
parent 284beda03b
commit 67d5628721
  1. 50
      engine/src/jogl/com/jme3/audio/joal/JoalAudioRenderer.java

@ -77,6 +77,7 @@ public class JoalAudioRenderer implements AudioRenderer, Runnable {
private ALC alc; private ALC alc;
private AL al; private AL al;
private ALExt alExt;
static { static {
ALut.alutInit(); ALut.alutInit();
@ -145,6 +146,7 @@ public class JoalAudioRenderer implements AudioRenderer, Runnable {
try { try {
alc = ALFactory.getALC(); alc = ALFactory.getALC();
al = ALFactory.getAL(); al = ALFactory.getAL();
alExt = ALFactory.getALExt();
// Get handle to default device. // Get handle to default device.
ALCdevice device = alc.alcOpenDevice(null); ALCdevice device = alc.alcOpenDevice(null);
@ -215,17 +217,17 @@ public class JoalAudioRenderer implements AudioRenderer, Runnable {
// create slot // create slot
ib.position(0).limit(1); ib.position(0).limit(1);
al.alGenAuxiliaryEffectSlots(1, ib); alExt.alGenAuxiliaryEffectSlots(1, ib);
reverbFxSlot = ib.get(0); reverbFxSlot = ib.get(0);
// create effect // create effect
ib.position(0).limit(1); ib.position(0).limit(1);
al.alGenEffects(1, ib); alExt.alGenEffects(1, ib);
reverbFx = ib.get(0); reverbFx = ib.get(0);
al.alEffecti(reverbFx, ALExtConstants.AL_EFFECT_TYPE, ALExtConstants.AL_EFFECT_REVERB); alExt.alEffecti(reverbFx, ALExtConstants.AL_EFFECT_TYPE, ALExtConstants.AL_EFFECT_REVERB);
// attach reverb effect to effect slot // attach reverb effect to effect slot
al.alAuxiliaryEffectSloti(reverbFxSlot, ALExtConstants.AL_EFFECTSLOT_EFFECT, reverbFx); alExt.alAuxiliaryEffectSloti(reverbFxSlot, ALExtConstants.AL_EFFECTSLOT_EFFECT, reverbFx);
} else { } else {
logger.log(Level.WARNING, "OpenAL EFX not available! Audio effects won't work."); logger.log(Level.WARNING, "OpenAL EFX not available! Audio effects won't work.");
} }
@ -264,13 +266,13 @@ public class JoalAudioRenderer implements AudioRenderer, Runnable {
if (supportEfx) { if (supportEfx) {
ib.position(0).limit(1); ib.position(0).limit(1);
ib.put(0, reverbFx); ib.put(0, reverbFx);
al.alDeleteEffects(1, ib); alExt.alDeleteEffects(1, ib);
// If this is not allocated, why is it deleted? // If this is not allocated, why is it deleted?
// Commented out to fix native crash in OpenAL. // Commented out to fix native crash in OpenAL.
ib.position(0).limit(1); ib.position(0).limit(1);
ib.put(0, reverbFxSlot); ib.put(0, reverbFxSlot);
al.alDeleteAuxiliaryEffectSlots(1, ib); alExt.alDeleteAuxiliaryEffectSlots(1, ib);
} }
//FIXME //FIXME
@ -288,7 +290,7 @@ public class JoalAudioRenderer implements AudioRenderer, Runnable {
int id = f.getId(); int id = f.getId();
if (id == -1) { if (id == -1) {
ib.position(0).limit(1); ib.position(0).limit(1);
al.alGenFilters(1, ib); alExt.alGenFilters(1, ib);
id = ib.get(0); id = ib.get(0);
f.setId(id); f.setId(id);
@ -297,9 +299,9 @@ public class JoalAudioRenderer implements AudioRenderer, Runnable {
if (f instanceof LowPassFilter) { if (f instanceof LowPassFilter) {
LowPassFilter lpf = (LowPassFilter) f; LowPassFilter lpf = (LowPassFilter) f;
al.alFilteri(id, ALExtConstants.AL_FILTER_TYPE, ALExtConstants.AL_FILTER_LOWPASS); alExt.alFilteri(id, ALExtConstants.AL_FILTER_TYPE, ALExtConstants.AL_FILTER_LOWPASS);
al.alFilterf(id, ALExtConstants.AL_LOWPASS_GAIN, lpf.getVolume()); alExt.alFilterf(id, ALExtConstants.AL_LOWPASS_GAIN, lpf.getVolume());
al.alFilterf(id, ALExtConstants.AL_LOWPASS_GAINHF, lpf.getHighFreqVolume()); alExt.alFilterf(id, ALExtConstants.AL_LOWPASS_GAINHF, lpf.getHighFreqVolume());
} else { } else {
throw new UnsupportedOperationException("Filter type unsupported: " throw new UnsupportedOperationException("Filter type unsupported: "
+ f.getClass().getName()); + f.getClass().getName());
@ -627,21 +629,21 @@ public class JoalAudioRenderer implements AudioRenderer, Runnable {
return; return;
} }
al.alEffectf(reverbFx, ALExtConstants.AL_REVERB_DENSITY, env.getDensity()); alExt.alEffectf(reverbFx, ALExtConstants.AL_REVERB_DENSITY, env.getDensity());
al.alEffectf(reverbFx, ALExtConstants.AL_REVERB_DIFFUSION, env.getDiffusion()); alExt.alEffectf(reverbFx, ALExtConstants.AL_REVERB_DIFFUSION, env.getDiffusion());
al.alEffectf(reverbFx, ALExtConstants.AL_REVERB_GAIN, env.getGain()); alExt.alEffectf(reverbFx, ALExtConstants.AL_REVERB_GAIN, env.getGain());
al.alEffectf(reverbFx, ALExtConstants.AL_REVERB_GAINHF, env.getGainHf()); alExt.alEffectf(reverbFx, ALExtConstants.AL_REVERB_GAINHF, env.getGainHf());
al.alEffectf(reverbFx, ALExtConstants.AL_REVERB_DECAY_TIME, env.getDecayTime()); alExt.alEffectf(reverbFx, ALExtConstants.AL_REVERB_DECAY_TIME, env.getDecayTime());
al.alEffectf(reverbFx, ALExtConstants.AL_REVERB_DECAY_HFRATIO, env.getDecayHFRatio()); alExt.alEffectf(reverbFx, ALExtConstants.AL_REVERB_DECAY_HFRATIO, env.getDecayHFRatio());
al.alEffectf(reverbFx, ALExtConstants.AL_REVERB_REFLECTIONS_GAIN, env.getReflectGain()); alExt.alEffectf(reverbFx, ALExtConstants.AL_REVERB_REFLECTIONS_GAIN, env.getReflectGain());
al.alEffectf(reverbFx, ALExtConstants.AL_REVERB_REFLECTIONS_DELAY, env.getReflectDelay()); alExt.alEffectf(reverbFx, ALExtConstants.AL_REVERB_REFLECTIONS_DELAY, env.getReflectDelay());
al.alEffectf(reverbFx, ALExtConstants.AL_REVERB_LATE_REVERB_GAIN, env.getLateReverbGain()); alExt.alEffectf(reverbFx, ALExtConstants.AL_REVERB_LATE_REVERB_GAIN, env.getLateReverbGain());
al.alEffectf(reverbFx, ALExtConstants.AL_REVERB_LATE_REVERB_DELAY, env.getLateReverbDelay()); alExt.alEffectf(reverbFx, ALExtConstants.AL_REVERB_LATE_REVERB_DELAY, env.getLateReverbDelay());
al.alEffectf(reverbFx, ALExtConstants.AL_REVERB_AIR_ABSORPTION_GAINHF, env.getAirAbsorbGainHf()); alExt.alEffectf(reverbFx, ALExtConstants.AL_REVERB_AIR_ABSORPTION_GAINHF, env.getAirAbsorbGainHf());
al.alEffectf(reverbFx, ALExtConstants.AL_REVERB_ROOM_ROLLOFF_FACTOR, env.getRoomRolloffFactor()); alExt.alEffectf(reverbFx, ALExtConstants.AL_REVERB_ROOM_ROLLOFF_FACTOR, env.getRoomRolloffFactor());
// attach effect to slot // attach effect to slot
al.alAuxiliaryEffectSloti(reverbFxSlot, ALExtConstants.AL_EFFECTSLOT_EFFECT, reverbFx); alExt.alAuxiliaryEffectSloti(reverbFxSlot, ALExtConstants.AL_EFFECTSLOT_EFFECT, reverbFx);
} }
} }
@ -1071,7 +1073,7 @@ public class JoalAudioRenderer implements AudioRenderer, Runnable {
if (id != -1) { if (id != -1) {
ib.put(0, id); ib.put(0, id);
ib.position(0).limit(1); ib.position(0).limit(1);
al.alDeleteFilters(1, ib); alExt.alDeleteFilters(1, ib);
} }
} }

Loading…
Cancel
Save