parent
a177ffa208
commit
5f33bdfa95
@ -0,0 +1,138 @@ |
||||
/* |
||||
* Copyright (c) 2009-2014 jMonkeyEngine |
||||
* All rights reserved. |
||||
* |
||||
* Redistribution and use in source and binary forms, with or without |
||||
* modification, are permitted provided that the following conditions are |
||||
* met: |
||||
* |
||||
* * Redistributions of source code must retain the above copyright |
||||
* notice, this list of conditions and the following disclaimer. |
||||
* |
||||
* * Redistributions in binary form must reproduce the above copyright |
||||
* notice, this list of conditions and the following disclaimer in the |
||||
* documentation and/or other materials provided with the distribution. |
||||
* |
||||
* * Neither the name of 'jMonkeyEngine' nor the names of its contributors |
||||
* may be used to endorse or promote products derived from this software |
||||
* without specific prior written permission. |
||||
* |
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED |
||||
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR |
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF |
||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
*/ |
||||
|
||||
package com.jme3.audio.joal; |
||||
|
||||
import com.jme3.util.BufferUtils; |
||||
import com.jogamp.openal.AL; |
||||
import com.jogamp.openal.ALFactory; |
||||
import java.nio.ByteBuffer; |
||||
import java.nio.FloatBuffer; |
||||
import java.nio.IntBuffer; |
||||
|
||||
/** |
||||
* Exposes OpenAL functions via JOAL. |
||||
* |
||||
* @author Kirill Vainer |
||||
*/ |
||||
public final class JoalAL implements com.jme3.audio.openal.AL { |
||||
|
||||
private final AL joalAl; |
||||
|
||||
public JoalAL() { |
||||
this.joalAl = ALFactory.getAL(); |
||||
} |
||||
|
||||
public String alGetString(int parameter) { |
||||
return joalAl.alGetString(parameter); |
||||
} |
||||
|
||||
public int alGenSources() { |
||||
IntBuffer ib = BufferUtils.createIntBuffer(1); |
||||
joalAl.alGenSources(1, ib); |
||||
return ib.get(0); |
||||
} |
||||
|
||||
public int alGetError() { |
||||
return joalAl.alGetError(); |
||||
} |
||||
|
||||
public void alDeleteSources(int numSources, IntBuffer sources) { |
||||
joalAl.alDeleteSources(numSources, sources); |
||||
} |
||||
|
||||
public void alGenBuffers(int numBuffers, IntBuffer buffers) { |
||||
joalAl.alGenBuffers(numBuffers, buffers); |
||||
} |
||||
|
||||
public void alDeleteBuffers(int numBuffers, IntBuffer buffers) { |
||||
joalAl.alDeleteBuffers(numBuffers, buffers); |
||||
} |
||||
|
||||
public void alSourceStop(int source) { |
||||
joalAl.alSourceStop(source); |
||||
} |
||||
|
||||
public void alSourcei(int source, int param, int value) { |
||||
joalAl.alSourcei(source, param, value); |
||||
} |
||||
|
||||
public void alBufferData(int buffer, int format, ByteBuffer data, int size, int frequency) { |
||||
joalAl.alBufferData(buffer, format, data, size, frequency); |
||||
} |
||||
|
||||
public void alSourcePlay(int source) { |
||||
joalAl.alSourcePlay(source); |
||||
} |
||||
|
||||
public void alSourcePause(int source) { |
||||
joalAl.alSourcePause(source); |
||||
} |
||||
|
||||
public void alSourcef(int source, int param, float value) { |
||||
joalAl.alSourcef(source, param, value); |
||||
} |
||||
|
||||
public void alSource3f(int source, int param, float value1, float value2, float value3) { |
||||
joalAl.alSource3f(source, param, value1, value2, value3); |
||||
} |
||||
|
||||
public int alGetSourcei(int source, int param) { |
||||
IntBuffer ib = BufferUtils.createIntBuffer(1); |
||||
joalAl.alGetSourcei(source, param, ib); |
||||
return ib.get(0); |
||||
} |
||||
|
||||
public void alSourceUnqueueBuffers(int source, int numBuffers, IntBuffer buffers) { |
||||
joalAl.alSourceUnqueueBuffers(source, numBuffers, buffers); |
||||
} |
||||
|
||||
public void alSourceQueueBuffers(int source, int numBuffers, IntBuffer buffers) { |
||||
joalAl.alSourceQueueBuffers(source, numBuffers, buffers); |
||||
} |
||||
|
||||
public void alListener(int param, FloatBuffer data) { |
||||
joalAl.alListenerfv(param, data); |
||||
} |
||||
|
||||
public void alListenerf(int param, float value) { |
||||
joalAl.alListenerf(param, value); |
||||
} |
||||
|
||||
public void alListener3f(int param, float value1, float value2, float value3) { |
||||
joalAl.alListener3f(param, value1, value2, value3); |
||||
} |
||||
|
||||
public void alSource3i(int source, int param, int value1, int value2, int value3) { |
||||
joalAl.alSource3i(source, param, value1, value2, value3); |
||||
} |
||||
} |
@ -0,0 +1,144 @@ |
||||
/* |
||||
* Copyright (c) 2009-2014 jMonkeyEngine |
||||
* All rights reserved. |
||||
* |
||||
* Redistribution and use in source and binary forms, with or without |
||||
* modification, are permitted provided that the following conditions are |
||||
* met: |
||||
* |
||||
* * Redistributions of source code must retain the above copyright |
||||
* notice, this list of conditions and the following disclaimer. |
||||
* |
||||
* * Redistributions in binary form must reproduce the above copyright |
||||
* notice, this list of conditions and the following disclaimer in the |
||||
* documentation and/or other materials provided with the distribution. |
||||
* |
||||
* * Neither the name of 'jMonkeyEngine' nor the names of its contributors |
||||
* may be used to endorse or promote products derived from this software |
||||
* without specific prior written permission. |
||||
* |
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED |
||||
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR |
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF |
||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
*/ |
||||
|
||||
package com.jme3.audio.joal; |
||||
|
||||
import com.jogamp.openal.ALCcontext; |
||||
import com.jogamp.openal.ALCdevice; |
||||
import com.jogamp.openal.ALFactory; |
||||
import com.jogamp.openal.util.ALut; |
||||
import java.nio.IntBuffer; |
||||
|
||||
/** |
||||
* Exposes ALC functions via JOAL. |
||||
* |
||||
* @author Kirill Vainer |
||||
*/ |
||||
public final class JoalALC implements com.jme3.audio.openal.ALC { |
||||
|
||||
private final com.jogamp.openal.ALC joalAlc; |
||||
|
||||
public JoalALC() { |
||||
joalAlc = ALFactory.getALC(); |
||||
} |
||||
|
||||
private ALCdevice getALCDevice() { |
||||
ALCcontext ctx = joalAlc.alcGetCurrentContext(); |
||||
|
||||
if (ctx == null) { |
||||
return null; |
||||
} |
||||
|
||||
ALCdevice device = joalAlc.alcGetContextsDevice(ctx); |
||||
|
||||
if (device == null) { |
||||
return null; |
||||
} |
||||
|
||||
return device; |
||||
} |
||||
|
||||
public void createALC() { |
||||
ALut.alutInit(); |
||||
|
||||
/* |
||||
// Get handle to default device.
|
||||
ALCdevice device = joalAlc.alcOpenDevice(null); |
||||
if (device == null) { |
||||
throw new ALException("Error opening default OpenAL device"); |
||||
} |
||||
|
||||
// Create audio context.
|
||||
ALCcontext context = joalAlc.alcCreateContext(device, null); |
||||
if (context == null) { |
||||
throw new ALException("Error creating OpenAL context"); |
||||
} |
||||
|
||||
// Set active context.
|
||||
if (!joalAlc.alcMakeContextCurrent(context)) { |
||||
throw new ALException("Failed to make OpenAL context current"); |
||||
} |
||||
|
||||
// Check for an error.
|
||||
if (joalAlc.alcGetError(device) != com.jogamp.openal.ALC.ALC_NO_ERROR) { |
||||
throw new ALException("Error making OpenAL context current"); |
||||
} |
||||
*/ |
||||
} |
||||
|
||||
public void destroyALC() { |
||||
/* |
||||
ALCcontext ctx = joalAlc.alcGetCurrentContext(); |
||||
|
||||
if (ctx == null) { |
||||
return; |
||||
} |
||||
|
||||
ALCdevice device = joalAlc.alcGetContextsDevice(ctx); |
||||
|
||||
if (device == null) { |
||||
return; |
||||
} |
||||
|
||||
if (!joalAlc.alcMakeContextCurrent(null)) { |
||||
return; |
||||
} |
||||
|
||||
joalAlc.alcDestroyContext(ctx); |
||||
joalAlc.alcCloseDevice(device); |
||||
*/ |
||||
|
||||
ALut.alutExit(); |
||||
} |
||||
|
||||
public boolean isCreated() { |
||||
return getALCDevice() != null; |
||||
} |
||||
|
||||
public String alcGetString(int parameter) { |
||||
return joalAlc.alcGetString(getALCDevice(), parameter); |
||||
} |
||||
|
||||
public boolean alcIsExtensionPresent(String extension) { |
||||
return joalAlc.alcIsExtensionPresent(getALCDevice(), extension); |
||||
} |
||||
|
||||
public void alcGetInteger(int param, IntBuffer buffer, int size) { |
||||
joalAlc.alcGetIntegerv(getALCDevice(), param, size, buffer); |
||||
} |
||||
|
||||
public void alcDevicePauseSOFT() { |
||||
} |
||||
|
||||
public void alcDeviceResumeSOFT() { |
||||
} |
||||
} |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,96 @@ |
||||
/* |
||||
* Copyright (c) 2009-2014 jMonkeyEngine |
||||
* All rights reserved. |
||||
* |
||||
* Redistribution and use in source and binary forms, with or without |
||||
* modification, are permitted provided that the following conditions are |
||||
* met: |
||||
* |
||||
* * Redistributions of source code must retain the above copyright |
||||
* notice, this list of conditions and the following disclaimer. |
||||
* |
||||
* * Redistributions in binary form must reproduce the above copyright |
||||
* notice, this list of conditions and the following disclaimer in the |
||||
* documentation and/or other materials provided with the distribution. |
||||
* |
||||
* * Neither the name of 'jMonkeyEngine' nor the names of its contributors |
||||
* may be used to endorse or promote products derived from this software |
||||
* without specific prior written permission. |
||||
* |
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED |
||||
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR |
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF |
||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
*/ |
||||
|
||||
package com.jme3.audio.joal; |
||||
|
||||
import com.jme3.audio.openal.EFX; |
||||
import com.jogamp.openal.ALExt; |
||||
import com.jogamp.openal.ALFactory; |
||||
import java.nio.IntBuffer; |
||||
|
||||
/** |
||||
* Exposes EFX extension for JOAL. |
||||
* |
||||
* @author Kirill Vainer |
||||
*/ |
||||
public final class JoalEFX implements EFX { |
||||
|
||||
private final ALExt joalAlext; |
||||
|
||||
public JoalEFX() { |
||||
joalAlext = ALFactory.getALExt(); |
||||
} |
||||
|
||||
public void alGenAuxiliaryEffectSlots(int numSlots, IntBuffer buffers) { |
||||
joalAlext.alGenAuxiliaryEffectSlots(numSlots, buffers); |
||||
} |
||||
|
||||
public void alGenEffects(int numEffects, IntBuffer buffers) { |
||||
joalAlext.alGenEffects(numEffects, buffers); |
||||
} |
||||
|
||||
public void alEffecti(int effect, int param, int value) { |
||||
joalAlext.alEffecti(effect, param, value); |
||||
} |
||||
|
||||
public void alAuxiliaryEffectSloti(int effectSlot, int param, int value) { |
||||
joalAlext.alAuxiliaryEffectSloti(effectSlot, param, value); |
||||
} |
||||
|
||||
public void alDeleteEffects(int numEffects, IntBuffer buffers) { |
||||
joalAlext.alDeleteEffects(numEffects, buffers); |
||||
} |
||||
|
||||
public void alDeleteAuxiliaryEffectSlots(int numEffectSlots, IntBuffer buffers) { |
||||
joalAlext.alDeleteAuxiliaryEffectSlots(numEffectSlots, buffers); |
||||
} |
||||
|
||||
public void alGenFilters(int numFilters, IntBuffer buffers) { |
||||
joalAlext.alGenFilters(numFilters, buffers); |
||||
} |
||||
|
||||
public void alFilteri(int filter, int param, int value) { |
||||
joalAlext.alFilteri(filter, param, value); |
||||
} |
||||
|
||||
public void alFilterf(int filter, int param, float value) { |
||||
joalAlext.alFilterf(filter, param, value); |
||||
} |
||||
|
||||
public void alDeleteFilters(int numFilters, IntBuffer buffers) { |
||||
joalAlext.alDeleteFilters(numFilters, buffers); |
||||
} |
||||
|
||||
public void alEffectf(int effect, int param, float value) { |
||||
joalAlext.alEffectf(effect, param, value); |
||||
} |
||||
} |
Loading…
Reference in new issue