From 82c97f79ac4e11f048049db068a29971610d7bc3 Mon Sep 17 00:00:00 2001 From: Brian Matzon Date: Mon, 2 Sep 2002 22:08:26 +0000 Subject: [PATCH] add: finished EAX support --- ...org_lwjgl_openal_eax_EAXBufferProperties.h | 75 ++++++++++++ ...g_lwjgl_openal_eax_EAXListenerProperties.h | 76 ++++++++++++ ...g_lwjgl_openal_eax_EAXBufferProperties.cpp | 109 +++++++++++++++++ ...lwjgl_openal_eax_EAXListenerProperties.cpp | 113 ++++++++++++++++++ 4 files changed, 373 insertions(+) create mode 100644 src/native/common/org_lwjgl_openal_eax_EAXBufferProperties.h create mode 100644 src/native/common/org_lwjgl_openal_eax_EAXListenerProperties.h create mode 100644 src/native/win32/org_lwjgl_openal_eax_EAXBufferProperties.cpp create mode 100644 src/native/win32/org_lwjgl_openal_eax_EAXListenerProperties.cpp diff --git a/src/native/common/org_lwjgl_openal_eax_EAXBufferProperties.h b/src/native/common/org_lwjgl_openal_eax_EAXBufferProperties.h new file mode 100644 index 00000000..2efac1bf --- /dev/null +++ b/src/native/common/org_lwjgl_openal_eax_EAXBufferProperties.h @@ -0,0 +1,75 @@ +/* + * Copyright (c) 2002 Light Weight Java Game Library Project + * 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 'Light Weight Java Game Library' 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. + */ + +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include +/* Header for class org_lwjgl_openal_eax_EAXBufferProperties */ + +#ifndef _Included_org_lwjgl_openal_eax_EAXBufferProperties +#define _Included_org_lwjgl_openal_eax_EAXBufferProperties +#ifdef __cplusplus +extern "C" { +#endif +/* Inaccessible static: EAXBUFFERPROPERTIES_SIZE */ +/* Inaccessible static: direct_offset */ +/* Inaccessible static: directHF_offset */ +/* Inaccessible static: room_offset */ +/* Inaccessible static: roomHF_offset */ +/* Inaccessible static: roomRolloffFactor_offset */ +/* Inaccessible static: obstruction_offset */ +/* Inaccessible static: obstructionLFRatio_offset */ +/* Inaccessible static: occlusion_offset */ +/* Inaccessible static: occlusionLFRatio_offset */ +/* Inaccessible static: occlusionRoomRatio_offset */ +/* Inaccessible static: outsideVolumeHF_offset */ +/* Inaccessible static: airAbsorptionFactor_offset */ +/* Inaccessible static: flags_offset */ +/* + * Class: org_lwjgl_openal_eax_EAXBufferProperties + * Method: sizeOfEaxBufferProperties + * Signature: ()I + */ +JNIEXPORT jint JNICALL Java_org_lwjgl_openal_eax_EAXBufferProperties_sizeOfEaxBufferProperties + (JNIEnv *, jobject); + +/* + * Class: org_lwjgl_openal_eax_EAXBufferProperties + * Method: assignOffsets + * Signature: ()V + */ +JNIEXPORT void JNICALL Java_org_lwjgl_openal_eax_EAXBufferProperties_assignOffsets + (JNIEnv *, jobject); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/src/native/common/org_lwjgl_openal_eax_EAXListenerProperties.h b/src/native/common/org_lwjgl_openal_eax_EAXListenerProperties.h new file mode 100644 index 00000000..1344fb11 --- /dev/null +++ b/src/native/common/org_lwjgl_openal_eax_EAXListenerProperties.h @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2002 Light Weight Java Game Library Project + * 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 'Light Weight Java Game Library' 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. + */ + +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include +/* Header for class org_lwjgl_openal_eax_EAXListenerProperties */ + +#ifndef _Included_org_lwjgl_openal_eax_EAXListenerProperties +#define _Included_org_lwjgl_openal_eax_EAXListenerProperties +#ifdef __cplusplus +extern "C" { +#endif +/* Inaccessible static: EAXLISTENERPROPERTIES_SIZE */ +/* Inaccessible static: room_offset */ +/* Inaccessible static: roomHF_offset */ +/* Inaccessible static: roomRolloffFactor_offset */ +/* Inaccessible static: decayTime_offset */ +/* Inaccessible static: decayHFRatio_offset */ +/* Inaccessible static: reflections_offset */ +/* Inaccessible static: reflectionsDelay_offset */ +/* Inaccessible static: reverb_offset */ +/* Inaccessible static: reverbDelay_offset */ +/* Inaccessible static: environment_offset */ +/* Inaccessible static: environmentSize_offset */ +/* Inaccessible static: environmentDiffusion_offset */ +/* Inaccessible static: airAbsorptionHF_offset */ +/* Inaccessible static: flags_offset */ +/* + * Class: org_lwjgl_openal_eax_EAXListenerProperties + * Method: sizeOfEaxListenerProperties + * Signature: ()I + */ +JNIEXPORT jint JNICALL Java_org_lwjgl_openal_eax_EAXListenerProperties_sizeOfEaxListenerProperties + (JNIEnv *, jclass); + +/* + * Class: org_lwjgl_openal_eax_EAXListenerProperties + * Method: assignOffsets + * Signature: ()V + */ +JNIEXPORT void JNICALL Java_org_lwjgl_openal_eax_EAXListenerProperties_assignOffsets + (JNIEnv *, jclass); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/src/native/win32/org_lwjgl_openal_eax_EAXBufferProperties.cpp b/src/native/win32/org_lwjgl_openal_eax_EAXBufferProperties.cpp new file mode 100644 index 00000000..e5f6936b --- /dev/null +++ b/src/native/win32/org_lwjgl_openal_eax_EAXBufferProperties.cpp @@ -0,0 +1,109 @@ +/* + * Copyright (c) 2002 Light Weight Java Game Library Project + * 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 'Light Weight Java Game Library' 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. + */ + +#include "org_lwjgl_openal_eax_EAXBufferProperties.h" +#include +#include + +/* + * Class: org_lwjgl_openal_eax_EAXBufferProperties + * Method: sizeOfEaxBufferProperties + * Signature: ()I + */ +JNIEXPORT jint JNICALL Java_org_lwjgl_openal_eax_EAXBufferProperties_sizeOfEaxBufferProperties(JNIEnv *env, jobject obj) { + return sizeof(EAXBUFFERPROPERTIES); +} + +/* + * Class: org_lwjgl_openal_eax_EAXBufferProperties + * Method: assignOffsets + * Signature: ()V + */ +JNIEXPORT void JNICALL Java_org_lwjgl_openal_eax_EAXBufferProperties_assignOffsets(JNIEnv *env, jobject obj) { + jclass listener_class; + jfieldID field; + + //get class/fields + listener_class = env->FindClass("org/lwjgl/openal/eax/EAXBufferProperties"); + + //set environmentDiffusion_offset + field = env->GetStaticFieldID(listener_class, "direct_offset", "I"); + env->SetStaticIntField(listener_class, field, offsetof(EAXBUFFERPROPERTIES, lDirect)); + + //set environmentDiffusion_offset + field = env->GetStaticFieldID(listener_class, "directHF_offset", "I"); + env->SetStaticIntField(listener_class, field, offsetof(EAXBUFFERPROPERTIES, lDirectHF)); + + //set environmentDiffusion_offset + field = env->GetStaticFieldID(listener_class, "room_offset", "I"); + env->SetStaticIntField(listener_class, field, offsetof(EAXBUFFERPROPERTIES, lRoom)); + + //set environmentDiffusion_offset + field = env->GetStaticFieldID(listener_class, "roomHF_offset", "I"); + env->SetStaticIntField(listener_class, field, offsetof(EAXBUFFERPROPERTIES, lRoomHF)); + + //set environmentDiffusion_offset + field = env->GetStaticFieldID(listener_class, "roomRolloffFactor_offset", "I"); + env->SetStaticIntField(listener_class, field, offsetof(EAXBUFFERPROPERTIES, flRoomRolloffFactor)); + + //set environmentDiffusion_offset + field = env->GetStaticFieldID(listener_class, "obstruction_offset", "I"); + env->SetStaticIntField(listener_class, field, offsetof(EAXBUFFERPROPERTIES, lObstruction)); + + //set environmentDiffusion_offset + field = env->GetStaticFieldID(listener_class, "obstructionLFRatio_offset", "I"); + env->SetStaticIntField(listener_class, field, offsetof(EAXBUFFERPROPERTIES, flObstructionLFRatio)); + + //set environmentDiffusion_offset + field = env->GetStaticFieldID(listener_class, "occlusion_offset", "I"); + env->SetStaticIntField(listener_class, field, offsetof(EAXBUFFERPROPERTIES, lOcclusion)); + + //set environmentDiffusion_offset + field = env->GetStaticFieldID(listener_class, "occlusionLFRatio_offset", "I"); + env->SetStaticIntField(listener_class, field, offsetof(EAXBUFFERPROPERTIES, flOcclusionLFRatio)); + + //set environmentDiffusion_offset + field = env->GetStaticFieldID(listener_class, "occlusionRoomRatio_offset", "I"); + env->SetStaticIntField(listener_class, field, offsetof(EAXBUFFERPROPERTIES, flOcclusionRoomRatio)); + + //set environmentDiffusion_offset + field = env->GetStaticFieldID(listener_class, "outsideVolumeHF_offset", "I"); + env->SetStaticIntField(listener_class, field, offsetof(EAXBUFFERPROPERTIES, lOutsideVolumeHF)); + + //set environmentDiffusion_offset + field = env->GetStaticFieldID(listener_class, "airAbsorptionFactor_offset", "I"); + env->SetStaticIntField(listener_class, field, offsetof(EAXBUFFERPROPERTIES, flAirAbsorptionFactor)); + + //set environmentDiffusion_offset + field = env->GetStaticFieldID(listener_class, "flags_offset", "I"); + env->SetStaticIntField(listener_class, field, offsetof(EAXBUFFERPROPERTIES, dwFlags)); +} \ No newline at end of file diff --git a/src/native/win32/org_lwjgl_openal_eax_EAXListenerProperties.cpp b/src/native/win32/org_lwjgl_openal_eax_EAXListenerProperties.cpp new file mode 100644 index 00000000..e5555efa --- /dev/null +++ b/src/native/win32/org_lwjgl_openal_eax_EAXListenerProperties.cpp @@ -0,0 +1,113 @@ +/* + * Copyright (c) 2002 Light Weight Java Game Library Project + * 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 'Light Weight Java Game Library' 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. + */ + +#include "org_lwjgl_openal_eax_EAXListenerProperties.h" +#include +#include + +/* + * Class: org_lwjgl_openal_eax_EAXListenerProperties + * Method: sizeOfEaxListenerProperties + * Signature: ()I + */ +JNIEXPORT jint JNICALL Java_org_lwjgl_openal_eax_EAXListenerProperties_sizeOfEaxListenerProperties(JNIEnv *env, jobject obj) { + return sizeof(EAXLISTENERPROPERTIES); +} + +/* + * Class: org_lwjgl_openal_eax_EAXListenerProperties + * Method: assignOffsets + * Signature: ()V + */ +JNIEXPORT void JNICALL Java_org_lwjgl_openal_eax_EAXListenerProperties_assignOffsets (JNIEnv *env, jobject obj) { + jclass listener_class; + jfieldID field; + + //get class/fields + listener_class = env->FindClass("org/lwjgl/openal/eax/EAXListenerProperties"); + + //set environmentDiffusion_offset + field = env->GetStaticFieldID(listener_class, "room_offset", "I"); + env->SetStaticIntField(listener_class, field, offsetof(EAXLISTENERPROPERTIES, lRoom)); + + //set environmentDiffusion_offset + field = env->GetStaticFieldID(listener_class, "roomHF_offset", "I"); + env->SetStaticIntField(listener_class, field, offsetof(EAXLISTENERPROPERTIES, lRoomHF)); + + //set environmentDiffusion_offset + field = env->GetStaticFieldID(listener_class, "roomRolloffFactor_offset", "I"); + env->SetStaticIntField(listener_class, field, offsetof(EAXLISTENERPROPERTIES, flRoomRolloffFactor)); + + //set environmentDiffusion_offset + field = env->GetStaticFieldID(listener_class, "decayTime_offset", "I"); + env->SetStaticIntField(listener_class, field, offsetof(EAXLISTENERPROPERTIES, flDecayTime)); + + //set environmentDiffusion_offset + field = env->GetStaticFieldID(listener_class, "decayHFRatio_offset", "I"); + env->SetStaticIntField(listener_class, field, offsetof(EAXLISTENERPROPERTIES, flDecayHFRatio)); + + //set environmentDiffusion_offset + field = env->GetStaticFieldID(listener_class, "reflections_offset", "I"); + env->SetStaticIntField(listener_class, field, offsetof(EAXLISTENERPROPERTIES, lReflections)); + + //set environmentDiffusion_offset + field = env->GetStaticFieldID(listener_class, "reflectionsDelay_offset", "I"); + env->SetStaticIntField(listener_class, field, offsetof(EAXLISTENERPROPERTIES, flReflectionsDelay)); + + //set environmentDiffusion_offset + field = env->GetStaticFieldID(listener_class, "reverb_offset", "I"); + env->SetStaticIntField(listener_class, field, offsetof(EAXLISTENERPROPERTIES, lReverb)); + + //set environmentDiffusion_offset + field = env->GetStaticFieldID(listener_class, "reverbDelay_offset", "I"); + env->SetStaticIntField(listener_class, field, offsetof(EAXLISTENERPROPERTIES, flReverbDelay)); + + //set environmentDiffusion_offset + field = env->GetStaticFieldID(listener_class, "environment_offset", "I"); + env->SetStaticIntField(listener_class, field, offsetof(EAXLISTENERPROPERTIES, dwEnvironment)); + + //set environmentDiffusion_offset + field = env->GetStaticFieldID(listener_class, "environmentSize_offset", "I"); + env->SetStaticIntField(listener_class, field, offsetof(EAXLISTENERPROPERTIES, flEnvironmentSize)); + + //set environmentDiffusion_offset + field = env->GetStaticFieldID(listener_class, "environmentDiffusion_offset", "I"); + env->SetStaticIntField(listener_class, field, offsetof(EAXLISTENERPROPERTIES, flEnvironmentDiffusion)); + + //set environmentDiffusion_offset + field = env->GetStaticFieldID(listener_class, "airAbsorptionHF_offset", "I"); + env->SetStaticIntField(listener_class, field, offsetof(EAXLISTENERPROPERTIES, flAirAbsorptionHF)); + + //set environmentDiffusion_offset + field = env->GetStaticFieldID(listener_class, "flags_offset", "I"); + env->SetStaticIntField(listener_class, field, offsetof(EAXLISTENERPROPERTIES, dwFlags)); +}