diff options
author | athomas <[email protected]> | 2003-06-07 00:24:00 +0000 |
---|---|---|
committer | athomas <[email protected]> | 2003-06-07 00:24:00 +0000 |
commit | 5f9e58c5b1a23119a63dfb1e76e73349858439db (patch) | |
tree | 15dd6447e3a3d51aa527a75d2640a20537c1adde /src/native | |
parent | 52acaea03c9dd7512fcc17f4ce16d1e86f4512eb (diff) |
Initial check-in of project files
git-svn-id: file:///home/mbien/NetBeansProjects/JOGAMP/joal-sync/git-svn/../svn-server-sync/joal/trunk@21 03bf7f67-59de-4072-a415-9a990d468a3f
Diffstat (limited to 'src/native')
-rw-r--r-- | src/native/albind.c | 720 | ||||
-rw-r--r-- | src/native/albind.h | 703 | ||||
-rw-r--r-- | src/native/alcbind.c | 140 | ||||
-rw-r--r-- | src/native/alcbind.h | 148 | ||||
-rw-r--r-- | src/native/alfactory.c | 47 | ||||
-rw-r--r-- | src/native/alfactory.h | 66 | ||||
-rw-r--r-- | src/native/build.xml | 71 | ||||
-rw-r--r-- | src/native/eaxbind.c | 85 | ||||
-rw-r--r-- | src/native/eaxbind.h | 63 | ||||
-rw-r--r-- | src/native/eaxfactory.c | 50 | ||||
-rw-r--r-- | src/native/eaxfactory.h | 58 | ||||
-rw-r--r-- | src/native/extal.c | 416 | ||||
-rw-r--r-- | src/native/extal.h | 315 |
13 files changed, 2882 insertions, 0 deletions
diff --git a/src/native/albind.c b/src/native/albind.c new file mode 100644 index 0000000..023f235 --- /dev/null +++ b/src/native/albind.c @@ -0,0 +1,720 @@ +/** +* Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* +* -Redistribution of source code must retain the above copyright notice, +* this list of conditions and the following disclaimer. +* +* -Redistribution 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 Sun Microsystems, Inc. or the names of contributors may +* be used to endorse or promote products derived from this software without +* specific prior written permission. +* +* This software is provided "AS IS," without a warranty of any kind. +* ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING +* ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR +* NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MIDROSYSTEMS, INC. ("SUN") AND ITS +* LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A +* RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. +* IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT +* OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR +* PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, +* ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS +* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +* +* You acknowledge that this software is not designed or intended for use in the +* design, construction, operation or maintenance of any nuclear facility. +*/ + + +#include "albind.h" +#include "extal.h" + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGenBuffersNative__ILjava_nio_IntBuffer_2 + (JNIEnv *env, jobject obj, jint numBuffers, jobject buffers) { + if(buffers == 0) { + + } + ALuint *p = (ALuint*)(*env)->GetDirectBufferAddress(env,buffers); + alGenBuffers((ALsizei)numBuffers,p); +} +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGenBuffersNative__I_3I + (JNIEnv *env, jobject obj, jint numBuffers, jintArray buffers) { + ALuint *p = (ALuint*)(*env)->GetPrimitiveArrayCritical(env,buffers,0); + if(p) { + alGenBuffers((ALsizei)numBuffers,p); + } + (*env)->ReleasePrimitiveArrayCritical(env,buffers,p,0); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alDeleteBuffersNative__ILjava_nio_IntBuffer_2 + (JNIEnv *env, jobject obj, jint numBuffers, jobject buffers) { + ALuint *p = (ALuint*)(*env)->GetDirectBufferAddress(env,buffers); + if(p) { + alDeleteBuffers((ALsizei)numBuffers,p); + } +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alDeleteBuffersNative__I_3I + (JNIEnv *env, jobject obj, jint numBuffers, jintArray buffers) { + ALuint *p = (ALuint*)(*env)->GetPrimitiveArrayCritical(env,buffers,0); + if(p) { + alDeleteBuffers((ALsizei)numBuffers,p); + } + (*env)->ReleasePrimitiveArrayCritical(env,buffers,p,0); +} + +JNIEXPORT jboolean JNICALL Java_net_java_games_joal_ALImpl_alIsBuffer + (JNIEnv *env, jobject obj, jint bufferName) { + jboolean result; + result = alIsBuffer((ALuint)bufferName); + return result; +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alBufferDataNative__IILjava_nio_ByteBuffer_2II + (JNIEnv *env, + jobject obj, + jint bufferName, + jint format, + jobject data, + jint size, + jint frequency) { + ALvoid *p = (ALvoid*)(*env)->GetDirectBufferAddress(env,data); + if(p) { + alBufferData((ALuint)bufferName, + (ALenum)format, + p, + (ALsizei)size, + (ALsizei)frequency); + } +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alBufferDataNative__II_3BII + (JNIEnv *env, + jobject obj, + jint bufferName, + jint format, + jbyteArray data, + jint size, + jint frequency) { + ALvoid *p = (ALvoid*)(*env)->GetPrimitiveArrayCritical(env,data,0); + if(p) { + alBufferData((ALuint)bufferName, + (ALenum)format, + p, + (ALsizei)size, + (ALsizei)frequency); + } + (*env)->ReleasePrimitiveArrayCritical(env,data,p,0); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetBufferfNative__II_3F + (JNIEnv *env, jobject obj, jint buffer, jint pname, jfloatArray rv) { + ALfloat *result = (ALfloat*)(*env)->GetPrimitiveArrayCritical(env,rv,0); + alGetBufferf((ALuint)buffer, (ALenum)pname, result); + (*env)->ReleasePrimitiveArrayCritical(env,rv,result,0); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetBufferfNative__IILjava_nio_FloatBuffer_2 + (JNIEnv *env, jobject obj, jint buffer, jint pname, jobject rv) { + ALfloat *p = (ALfloat*)(*env)->GetDirectBufferAddress(env,rv); + if(p) { + alGetBufferf((ALuint)buffer, (ALenum)pname, p); + } +} + +JNIEXPORT jfloat JNICALL Java_net_java_games_joal_ALImpl_alGetBufferf__II + (JNIEnv *env, jobject obj, jint buffer, jint pname) { + jfloat result; + alGetBufferf((ALuint)buffer, (ALenum)pname, &result); + return result; +} + + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetBufferiNative__II_3I + (JNIEnv *env, jobject obj, jint buffer, jint pname, jintArray rv) { + ALint *p = (ALint*)(*env)->GetPrimitiveArrayCritical(env,rv,0); + if(p) { + alGetBufferi((ALuint)buffer, (ALenum)pname, p); + } + (*env)->ReleasePrimitiveArrayCritical(env,rv,p,0); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetBufferiNative__IILjava_nio_IntBuffer_2 + (JNIEnv *env, jobject obj, jint buffer, jint pname, jobject rv) { + ALint *p = (ALint*)(*env)->GetDirectBufferAddress(env,rv); + if(p) { + alGetBufferi((ALuint)buffer, (ALenum)pname, p); + } + (*env)->ReleasePrimitiveArrayCritical(env,rv,p,0); +} + +JNIEXPORT jint JNICALL Java_net_java_games_joal_ALImpl_alGetBufferi__II + (JNIEnv *env, jobject obj, jint buffer, jint pname) { + ALint result; + alGetBufferi((ALuint)buffer, (ALenum)pname, &result); + return (jint)result; +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGenSourcesNative__I_3I + (JNIEnv *env, jobject obj, jint numSources, jintArray sources) { + ALuint *p = (ALuint*)(*env)->GetPrimitiveArrayCritical(env,sources,0); + if(p) { + alGenSources((ALsizei)numSources,p); + } + (*env)->ReleasePrimitiveArrayCritical(env,sources,p,0); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGenSourcesNative__ILjava_nio_IntBuffer_2 + (JNIEnv *env, jobject obj, jint numSources, jobject sources) { + ALuint *p = (ALuint*)(*env)->GetDirectBufferAddress(env,sources); + if(p) { + alGenSources((ALsizei)numSources,p); + } +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alDeleteSourcesNative__I_3I + (JNIEnv *env, jobject obj, jint numSources, jintArray sources) { + ALuint *p = (ALuint*)(*env)->GetPrimitiveArrayCritical(env,sources,0); + if(p) { + alDeleteSources((ALsizei)numSources, p); + } + (*env)->ReleasePrimitiveArrayCritical(env,sources,p,0); +} + +/* + * Class: net_java_games_joal_AL + * Method: alDeleteSources + * Signature: (ILjava/nio/IntBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alDeleteSourcesNative__ILjava_nio_IntBuffer_2 + (JNIEnv *env, jobject obj, jint numSources, jobject sources) { + ALuint *p = (ALuint*)(*env)->GetDirectBufferAddress(env,sources); + if(p) { + alDeleteSources((ALsizei)numSources, p); + } +} + +JNIEXPORT jboolean JNICALL Java_net_java_games_joal_ALImpl_alIsSource + (JNIEnv *env, jobject obj, jint sourceName) { + alIsSource((ALuint)sourceName); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourcei + (JNIEnv *env, jobject obj, jint source, jint pname, jint value) { + alSourcei((ALuint)source,(ALenum)pname, (ALint)value); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourcef + (JNIEnv *env, jobject obj, jint source, jint pname, jfloat value) { + alSourcef((ALuint)source,(ALenum)pname, (ALfloat)value); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourcefvNative__II_3F + (JNIEnv *env, jobject obj, jint source, jint pname, jfloatArray value) { + ALfloat *p = (ALfloat*)(*env)->GetPrimitiveArrayCritical(env,value,0); + if(p) { + alSourcefv((ALuint)source, (ALenum)pname, p); + } + (*env)->ReleasePrimitiveArrayCritical(env,value,p,0); +} + +/* + * Class: net_java_games_joal_AL + * Method: alSourcefv + * Signature: (IILjava/nio/FloatBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourcefvNative__IILjava_nio_FloatBuffer_2 + (JNIEnv *env, jobject obj, jint source, jint pname, jobject value) { + ALfloat *p = (ALfloat*)(*env)->GetDirectBufferAddress(env,value); + alSourcefv((ALuint)source, (ALenum)pname, p); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSource3f + (JNIEnv *env, + jobject obj, + jint source, + jint pname, + jfloat v1, + jfloat v2, + jfloat v3) { + alSource3f((ALuint)source, + (ALenum)pname, + (ALfloat)v1, + (ALfloat)v2, + (ALfloat)v3); +} + + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetSourcefNative__II_3F + (JNIEnv *env, jobject obj, jint source, jint pname, jfloatArray rv) { + ALfloat *p = (*env)->GetPrimitiveArrayCritical(env,rv,0); + if(p) { + alGetSourcef((ALuint)source, (ALenum)pname, p); + } + (*env)->ReleasePrimitiveArrayCritical(env,rv,p,0); +} + +/* + * Class: net_java_games_joal_AL + * Method: alGetSourcef + * Signature: (IILjava/nio/FloatBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetSourcefNative__IILjava_nio_FloatBuffer_2 + (JNIEnv *env, jobject obj, jint source, jint pname, jobject rv) { + ALfloat *p = (*env)->GetDirectBufferAddress(env,rv); + if(p) { + alGetSourcef((ALuint)source, (ALenum)pname, p); + } +} + +/* + * Class: net_java_games_joal_AL + * Method: alGetSourcef + * Signature: (II)F + */ +JNIEXPORT jfloat JNICALL Java_net_java_games_joal_ALImpl_alGetSourcef__II + (JNIEnv *env, jobject obj, jint source, jint pname) { + jfloat result; + alGetSourcef((ALuint)source, (ALenum)pname, &result); + return result; +} + + + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetSourcefvNative__IILjava_nio_FloatBuffer_2 + (JNIEnv *env, jobject obj, jint source, jint pname, jobject value) { + ALfloat *p = (ALfloat*)(*env)->GetDirectBufferAddress(env,value); + if(p) { + alGetSourcefv((ALuint)source, (ALenum)pname, p); + } +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetSourcefvNative__II_3F + (JNIEnv *env, jobject obj, jint source, jint pname, jfloatArray value) { + ALfloat *p = (ALfloat*)(*env)->GetPrimitiveArrayCritical(env,value,0); + if(p) { + alGetSourcefv((ALuint)source, (ALenum)pname, p); + } + (*env)->ReleasePrimitiveArrayCritical(env,value,p,0); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetSourceiNative__II_3I + (JNIEnv *env, jobject obj, jint source, jint pname, jintArray rv) { + ALint *p = (ALint*)(*env)->GetPrimitiveArrayCritical(env,rv,0); + if(p) { + alGetSourcei((ALuint)source, (ALenum)pname, p); + } + (*env)->ReleasePrimitiveArrayCritical(env,rv,p,0); +} + +/* + * Class: net_java_games_joal_AL + * Method: alGetSourcei + * Signature: (IILjava/nio/IntBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetSourceiNative__IILjava_nio_IntBuffer_2 + (JNIEnv *env, jobject obj, jint source, jint pname, jobject rv) { + ALint *p = (ALint*)(*env)->GetDirectBufferAddress(env,rv); + if(p) { + alGetSourcei((ALuint)source, (ALenum)pname, p); + } +} + +/* + * Class: net_java_games_joal_AL + * Method: alGetSourcei + * Signature: (II)I + */ +JNIEXPORT jint JNICALL Java_net_java_games_joal_ALImpl_alGetSourcei__II + (JNIEnv *env, jobject obj, jint source, jint pname) { + ALint result; + alGetSourcei((ALuint)source, (ALenum)pname, &result); + return (jint)result; +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourcePlay + (JNIEnv *env, jobject obj, jint source) { + alSourcePlay((ALuint)source); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourcePlayvNative__I_3I + (JNIEnv *env, jobject obj, jint numSources, jintArray sources) { + ALuint *p = (ALuint*)(*env)->GetPrimitiveArrayCritical(env,sources,0); + if(p) { + alSourcePlayv((ALsizei)numSources,p); + } + (*env)->ReleasePrimitiveArrayCritical(env,sources,p,0); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourcePlayvNative__ILjava_nio_IntBuffer_2 + (JNIEnv *env, jobject obj, jint numSources, jobject sources) { + ALuint *p = (ALuint*)(*env)->GetDirectBufferAddress(env,sources); + if(p) { + alSourcePlayv((ALsizei)numSources,p); + } +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourcePause + (JNIEnv *env, jobject obj, jint source) { + alSourcePause((ALuint)source); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourcePausevNative__I_3I + (JNIEnv *env, jobject obj, jint numSources, jintArray sources) { + ALuint *p = (ALuint*)(*env)->GetPrimitiveArrayCritical(env,sources,0); + if(p) { + alSourcePausev((ALsizei)numSources,p); + } + (*env)->ReleasePrimitiveArrayCritical(env,sources,p,0); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourcePausevNative__ILjava_nio_IntBuffer_2 + (JNIEnv *env, jobject obj, jint numSources, jobject sources) { + ALuint *p = (ALuint*)(*env)->GetDirectBufferAddress(env,sources); + if(p) { + alSourcePausev((ALsizei)numSources,p); + } +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourceStop + (JNIEnv *env, jobject obj, jint source) { + alSourceStop((ALuint)source); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourceStopvNative__I_3I + (JNIEnv *env, jobject obj, jint numSources, jintArray sources) { + ALuint *p = (ALuint*)(*env)->GetPrimitiveArrayCritical(env,sources,0); + if(p) { + alSourceStopv((ALsizei)numSources,p); + } + (*env)->ReleasePrimitiveArrayCritical(env,sources,p,0); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourceStopvNative__ILjava_nio_IntBuffer_2 + (JNIEnv *env, jobject obj, jint numSources, jobject sources) { + ALuint *p = (ALuint*)(*env)->GetDirectBufferAddress(env,sources); + if(p) { + alSourceStopv((ALsizei)numSources,p); + } +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourceRewind + (JNIEnv *env, jobject obj, jint source) { + alSourceRewind((ALuint)source); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourceRewindvNative__I_3I + (JNIEnv *env, jobject obj, jint numSources, jintArray sources) { + ALuint *p = (ALuint*)(*env)->GetPrimitiveArrayCritical(env,sources,0); + if(p) { + alSourceRewindv((ALsizei)numSources,p); + } + (*env)->ReleasePrimitiveArrayCritical(env,sources,p,0); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourceRewindvNative__ILjava_nio_IntBuffer_2 + (JNIEnv *env, jobject obj, jint numSources, jobject sources) { + ALuint *p = (ALuint*)(*env)->GetDirectBufferAddress(env,sources); + if(p) { + alSourceRewindv((ALsizei)numSources,p); + } +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourceQueueBuffersNative__IILjava_nio_IntBuffer_2 + (JNIEnv *env, jobject obj, jint source, jint numBuffers, jobject buffers) { + ALuint *p = (ALuint*)(*env)->GetDirectBufferAddress(env,buffers); + if(p) { + alSourceQueueBuffers((ALuint)source, (ALsizei)numBuffers, p); + } +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourceQueueBuffersNative__II_3I + (JNIEnv *env, jobject obj, jint source, jint numBuffers, jintArray buffers) { + ALuint *p = (ALuint*)(*env)->GetPrimitiveArrayCritical(env,buffers,0); + if(p) { + alSourceQueueBuffers((ALuint)source, (ALsizei)numBuffers, p); + } + (*env)->ReleasePrimitiveArrayCritical(env,buffers,p,0); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourceUnqueueBuffersNative__II_3I + (JNIEnv *env, jobject obj, jint source, jint numBuffers, jintArray buffers) { + ALuint *p = (ALuint*)(*env)->GetPrimitiveArrayCritical(env,buffers,0); + if(p) { + alSourceUnqueueBuffers((ALuint)source, (ALsizei)numBuffers, p); + } + (*env)->ReleasePrimitiveArrayCritical(env,buffers,p,0); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourceUnqueueBuffersNative__IILjava_nio_IntBuffer_2 + (JNIEnv *env, jobject obj, jint source, jint numBuffers, jobject buffers) { + ALuint *p = (ALuint*)(*env)->GetDirectBufferAddress(env,buffers); + if(p) { + alSourceUnqueueBuffers((ALuint)source, (ALsizei)numBuffers, p); + } +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alListenerf + (JNIEnv *env, jobject obj, jint pname, jfloat value) { + alListenerf((ALenum)pname,(ALfloat)value); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alListener3f + (JNIEnv *env, jobject obj, jint pname, jfloat v1, jfloat v2, jfloat v3) { + alListener3f((ALenum)pname, (ALfloat)v1, (ALfloat)v2, (ALfloat)v3); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alListenerfvNative__I_3F + (JNIEnv *env, jobject obj, jint pname, jfloatArray rv) { + ALfloat *p = (ALfloat*)(*env)->GetPrimitiveArrayCritical(env,rv,0); + alListenerfv((ALenum)pname, p); + (*env)->ReleasePrimitiveArrayCritical(env,rv,p,0); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alListenerfvNative__ILjava_nio_FloatBuffer_2 + (JNIEnv *env, jobject obj, jint pname, jobject value) { + ALfloat *p = (ALfloat*)(*env)->GetDirectBufferAddress(env,value); + alListenerfv((ALenum)pname, p); +} + + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetListenerfNative__I_3F + (JNIEnv *env, jobject obj, jint pname, jfloatArray rv) { + ALfloat *p = (ALfloat*)(*env)->GetPrimitiveArrayCritical(env,rv,0); + if(p) { + alGetListenerf((ALenum)pname, p); + } + (*env)->ReleasePrimitiveArrayCritical(env,rv,p,0); +} + +/* + * Class: net_java_games_joal_AL + * Method: alGetListenerf + * Signature: (ILjava/nio/FloatBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetListenerfNative__ILjava_nio_FloatBuffer_2 + (JNIEnv *env, jobject obj, jint pname, jobject rv) { + ALfloat *p = (ALfloat*)(*env)->GetDirectBufferAddress(env,rv); + if(p) { + alGetListenerf((ALenum)pname, p); + } +} + +/* + * Class: net_java_games_joal_AL + * Method: alGetListenerf + * Signature: (I)F + */ +JNIEXPORT jfloat JNICALL Java_net_java_games_joal_ALImpl_alGetListenerf__I + (JNIEnv *env, jobject object, jint pname) { + jfloat result; + alGetListenerf((ALenum)pname, &result); + return result; +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetListener3fNative__I_3F_3F_3F + (JNIEnv *env, jobject obj, jint pname, jfloatArray v1, jfloatArray v2, jfloatArray v3) { + ALfloat *p1 = (ALfloat*)(*env)->GetPrimitiveArrayCritical(env,v1,0); + ALfloat *p2 = (ALfloat*)(*env)->GetPrimitiveArrayCritical(env,v2,0); + ALfloat *p3 = (ALfloat*)(*env)->GetPrimitiveArrayCritical(env,v3,0); + if(p1 && p2 && p3) { + alGetListener3f((ALenum)pname, p1, p2, p3); + } + (*env)->ReleasePrimitiveArrayCritical(env,v3,p3,0); + (*env)->ReleasePrimitiveArrayCritical(env,v2,p2,0); + (*env)->ReleasePrimitiveArrayCritical(env,v1,p1,0); +} + + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetListener3fNative__ILjava_nio_FloatBuffer_2Ljava_nio_FloatBuffer_2Ljava_nio_FloatBuffer_2 + (JNIEnv *env, jobject obj, jint pname, jobject v1, jobject v2, jobject v3) { + ALfloat *p1 = (ALfloat*)(*env)->GetDirectBufferAddress(env,v1); + ALfloat *p2 = (ALfloat*)(*env)->GetDirectBufferAddress(env,v2); + ALfloat *p3 = (ALfloat*)(*env)->GetDirectBufferAddress(env,v3); + if(p1 && p2 && p3) { + alGetListener3f((ALenum)pname, p1, p2, p3); + } +} + + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetListenerfvNative__I_3F + (JNIEnv *env, jobject obj, jint pname, jfloatArray value) { + ALfloat *p = (ALfloat*)(*env)->GetPrimitiveArrayCritical(env,value,0); + if(p) { + alGetListenerfv((ALenum)pname, p); + } + (*env)->ReleasePrimitiveArrayCritical(env,value,p,0); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetListenerfvNative__ILjava_nio_FloatBuffer_2 + (JNIEnv *env, jobject obj, jint pname, jobject value) { + ALfloat *p = (ALfloat*)(*env)->GetDirectBufferAddress(env,value); + if(p) { + alGetListenerfv((ALenum)pname, p); + } +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetListeneriNative__I_3I + (JNIEnv *env, jobject obj, jint pname, jintArray value) { + ALint *p = (ALint*)(*env)->GetPrimitiveArrayCritical(env,value,0); + if(p) { + alGetListeneri((ALenum)pname, p); + } + (*env)->ReleasePrimitiveArrayCritical(env,value,p,0); + +} + +/* + * Class: net_java_games_joal_AL + * Method: alGetListeneri + * Signature: (ILjava/nio/IntBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetListeneriNative__ILjava_nio_IntBuffer_2 + (JNIEnv *env, jobject obj, jint pname, jobject value) { + ALint *p = (ALint*)(*env)->GetDirectBufferAddress(env,value); + if(p) { + alGetListeneri((ALenum)pname, p); + } +} + +/* + * Class: net_java_games_joal_AL + * Method: alGetListeneri + * Signature: (I)I + */ +JNIEXPORT jint JNICALL Java_net_java_games_joal_ALImpl_alGetListeneri__I + (JNIEnv *env, jobject obj, jint pname) { + ALint result; + alGetListeneri((ALenum)pname, &result); + return (jint)result; +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alEnable + (JNIEnv *env, jobject obj, jint capability) { + alEnable((ALenum)capability); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alDisable + (JNIEnv *env, jobject obj, jint capability) { + alDisable((ALenum)capability); +} + +JNIEXPORT jboolean JNICALL Java_net_java_games_joal_ALImpl_alIsEnabled + (JNIEnv *env, jobject obj, jint pname) { + return alIsEnabled((ALenum)pname); +} + +JNIEXPORT jboolean JNICALL Java_net_java_games_joal_ALImpl_alGetBoolean + (JNIEnv *env, jobject obj, jint pname) { + return alGetBoolean((ALenum)pname); +} + +JNIEXPORT jdouble JNICALL Java_net_java_games_joal_ALImpl_alGetDouble + (JNIEnv *env, jobject obj, jint pname) { + return alGetDouble((ALenum)pname); +} + +JNIEXPORT jfloat JNICALL Java_net_java_games_joal_ALImpl_alGetFloat + (JNIEnv *env, jobject obj, jint pname) { + return alGetFloat((ALenum)pname); +} + +JNIEXPORT jint JNICALL Java_net_java_games_joal_ALImpl_alGetInteger + (JNIEnv *env, jobject obj, jint pname) { + return alGetInteger((ALenum)pname); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetDoublevNative__I_3D + (JNIEnv *env, jobject obj, jint pname, jdoubleArray value) { + ALdouble *p = (ALdouble*)(*env)->GetPrimitiveArrayCritical(env,value,0); + if(p) { + alGetDoublev((ALenum)pname,p); + } + (*env)->ReleasePrimitiveArrayCritical(env,value,p,0); + +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetDoublevNative__ILjava_nio_DoubleBuffer_2 + (JNIEnv *env, jobject obj, jint pname, jobject value) { + ALdouble *p = (ALdouble*)(*env)->GetDirectBufferAddress(env,value); + if(p) { + alGetDoublev((ALenum)pname,p); + } +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetFloatvNative__I_3F + (JNIEnv *env, jobject obj, jint pname, jfloatArray value) { + ALfloat *p = (ALfloat*)(*env)->GetPrimitiveArrayCritical(env,value,0); + if(p) { + alGetFloatv((ALenum)pname,p); + } + (*env)->ReleasePrimitiveArrayCritical(env,value,p,0); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetFloatvNative__ILjava_nio_FloatBuffer_2 + (JNIEnv *env, jobject obj, jint pname, jobject value) { + ALfloat *p = (ALfloat*)(*env)->GetDirectBufferAddress(env,value); + if(p) { + alGetFloatv((ALenum)pname,p); + } +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetIntegervNative__I_3I + (JNIEnv *env, jobject obj, jint pname, jintArray value) { + ALint *p = (ALint*)(*env)->GetPrimitiveArrayCritical(env,value,0); + if(p) { + alGetIntegerv((ALenum)pname,p); + } + (*env)->ReleasePrimitiveArrayCritical(env,value,p,0); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetIntegervNative__ILjava_nio_IntBuffer_2 + (JNIEnv *env, jobject obj, jint pname, jobject value) { + ALint *p = (ALint*)(*env)->GetDirectBufferAddress(env,value); + if(p) { + alGetIntegerv((ALenum)pname,p); + } +} + + +JNIEXPORT jstring JNICALL Java_net_java_games_joal_ALImpl_alGetString + (JNIEnv *env, jobject obj, jint pname) { + ALubyte* p = alGetString((ALenum)pname); + return (*env)->NewStringUTF(env, p); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alDistanceModel + (JNIEnv *env, jobject obj, jint value) { + alDistanceModel((ALenum)value); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alDopplerFactor + (JNIEnv *env, jobject obj, jfloat value) { + alDopplerFactor((ALfloat)value); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alDopplerVelocity + (JNIEnv *env, jobject obj, jfloat value) { + alDopplerVelocity((ALfloat)value); +} + +JNIEXPORT jint JNICALL Java_net_java_games_joal_ALImpl_alGetError + (JNIEnv *env, jobject obj) { + return alGetError(); +} + +JNIEXPORT jboolean JNICALL Java_net_java_games_joal_ALImpl_alIsExtensionPresent + (JNIEnv *env, jobject obj, jstring extName) { + ALubyte *str; + str = (ALubyte*)(*env)->GetStringUTFChars(env, extName, NULL); + if(!str) { + return 0; + } + return alIsExtensionPresent(str); +} diff --git a/src/native/albind.h b/src/native/albind.h new file mode 100644 index 0000000..fd64846 --- /dev/null +++ b/src/native/albind.h @@ -0,0 +1,703 @@ +/** +* Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* +* -Redistribution of source code must retain the above copyright notice, +* this list of conditions and the following disclaimer. +* +* -Redistribution 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 Sun Microsystems, Inc. or the names of contributors may +* be used to endorse or promote products derived from this software without +* specific prior written permission. +* +* This software is provided "AS IS," without a warranty of any kind. +* ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING +* ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR +* NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MIDROSYSTEMS, INC. ("SUN") AND ITS +* LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A +* RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. +* IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT +* OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR +* PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, +* ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS +* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +* +* You acknowledge that this software is not designed or intended for use in the +* design, construction, operation or maintenance of any nuclear facility. +*/ + + +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> +/* Header for class net_java_games_joal_ALImpl */ + +#ifndef _Included_net_java_games_joal_ALImpl +#define _Included_net_java_games_joal_ALImpl +#ifdef __cplusplus +extern "C" { +#endif +/* + * Class: net_java_games_joal_ALImpl + * Method: alGenBuffersNative + * Signature: (ILjava/nio/IntBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGenBuffersNative__ILjava_nio_IntBuffer_2 + (JNIEnv *, jobject, jint, jobject); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGenBuffersNative + * Signature: (I[I)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGenBuffersNative__I_3I + (JNIEnv *, jobject, jint, jintArray); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alDeleteBuffersNative + * Signature: (ILjava/nio/IntBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alDeleteBuffersNative__ILjava_nio_IntBuffer_2 + (JNIEnv *, jobject, jint, jobject); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alDeleteBuffersNative + * Signature: (I[I)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alDeleteBuffersNative__I_3I + (JNIEnv *, jobject, jint, jintArray); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alIsBuffer + * Signature: (I)Z + */ +JNIEXPORT jboolean JNICALL Java_net_java_games_joal_ALImpl_alIsBuffer + (JNIEnv *, jobject, jint); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alBufferDataNative + * Signature: (II[BII)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alBufferDataNative__II_3BII + (JNIEnv *, jobject, jint, jint, jbyteArray, jint, jint); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alBufferDataNative + * Signature: (IILjava/nio/ByteBuffer;II)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alBufferDataNative__IILjava_nio_ByteBuffer_2II + (JNIEnv *, jobject, jint, jint, jobject, jint, jint); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetBufferfNative + * Signature: (II[F)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetBufferfNative__II_3F + (JNIEnv *, jobject, jint, jint, jfloatArray); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetBufferfNative + * Signature: (IILjava/nio/FloatBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetBufferfNative__IILjava_nio_FloatBuffer_2 + (JNIEnv *, jobject, jint, jint, jobject); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetBufferf + * Signature: (II)F + */ +JNIEXPORT jfloat JNICALL Java_net_java_games_joal_ALImpl_alGetBufferf + (JNIEnv *, jobject, jint, jint); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetBufferiNative + * Signature: (II[I)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetBufferiNative__II_3I + (JNIEnv *, jobject, jint, jint, jintArray); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetBufferiNative + * Signature: (IILjava/nio/IntBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetBufferiNative__IILjava_nio_IntBuffer_2 + (JNIEnv *, jobject, jint, jint, jobject); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetBufferi + * Signature: (II)I + */ +JNIEXPORT jint JNICALL Java_net_java_games_joal_ALImpl_alGetBufferi + (JNIEnv *, jobject, jint, jint); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGenSourcesNative + * Signature: (I[I)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGenSourcesNative__I_3I + (JNIEnv *, jobject, jint, jintArray); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGenSourcesNative + * Signature: (ILjava/nio/IntBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGenSourcesNative__ILjava_nio_IntBuffer_2 + (JNIEnv *, jobject, jint, jobject); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alDeleteSourcesNative + * Signature: (I[I)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alDeleteSourcesNative__I_3I + (JNIEnv *, jobject, jint, jintArray); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alDeleteSourcesNative + * Signature: (ILjava/nio/IntBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alDeleteSourcesNative__ILjava_nio_IntBuffer_2 + (JNIEnv *, jobject, jint, jobject); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alIsSource + * Signature: (I)Z + */ +JNIEXPORT jboolean JNICALL Java_net_java_games_joal_ALImpl_alIsSource + (JNIEnv *, jobject, jint); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alSourcei + * Signature: (III)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourcei + (JNIEnv *, jobject, jint, jint, jint); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alSourcef + * Signature: (IIF)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourcef + (JNIEnv *, jobject, jint, jint, jfloat); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alSourcefv + * Signature: (II[F)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourcefv + (JNIEnv *, jobject, jint, jint, jfloatArray); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alSourcefvNative + * Signature: (IILjava/nio/FloatBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourcefvNative + (JNIEnv *, jobject, jint, jint, jobject); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alSource3f + * Signature: (IIFFF)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSource3f + (JNIEnv *, jobject, jint, jint, jfloat, jfloat, jfloat); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetSourcefNative + * Signature: (II[F)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetSourcefNative__II_3F + (JNIEnv *, jobject, jint, jint, jfloatArray); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetSourcefNative + * Signature: (IILjava/nio/FloatBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetSourcefNative__IILjava_nio_FloatBuffer_2 + (JNIEnv *, jobject, jint, jint, jobject); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetSourcef + * Signature: (II)F + */ +JNIEXPORT jfloat JNICALL Java_net_java_games_joal_ALImpl_alGetSourcef + (JNIEnv *, jobject, jint, jint); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetSourcefvNative + * Signature: (IILjava/nio/FloatBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetSourcefvNative__IILjava_nio_FloatBuffer_2 + (JNIEnv *, jobject, jint, jint, jobject); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetSourcefvNative + * Signature: (II[F)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetSourcefvNative__II_3F + (JNIEnv *, jobject, jint, jint, jfloatArray); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetSourceiNative + * Signature: (II[I)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetSourceiNative__II_3I + (JNIEnv *, jobject, jint, jint, jintArray); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetSourceiNative + * Signature: (IILjava/nio/IntBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetSourceiNative__IILjava_nio_IntBuffer_2 + (JNIEnv *, jobject, jint, jint, jobject); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetSourcei + * Signature: (II)I + */ +JNIEXPORT jint JNICALL Java_net_java_games_joal_ALImpl_alGetSourcei + (JNIEnv *, jobject, jint, jint); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alSourcePlay + * Signature: (I)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourcePlay + (JNIEnv *, jobject, jint); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alSourcePlayvNative + * Signature: (I[I)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourcePlayvNative__I_3I + (JNIEnv *, jobject, jint, jintArray); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alSourcePlayvNative + * Signature: (ILjava/nio/IntBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourcePlayvNative__ILjava_nio_IntBuffer_2 + (JNIEnv *, jobject, jint, jobject); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alSourcePause + * Signature: (I)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourcePause + (JNIEnv *, jobject, jint); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alSourcePausevNative + * Signature: (I[I)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourcePausevNative__I_3I + (JNIEnv *, jobject, jint, jintArray); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alSourcePausevNative + * Signature: (ILjava/nio/IntBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourcePausevNative__ILjava_nio_IntBuffer_2 + (JNIEnv *, jobject, jint, jobject); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alSourceStop + * Signature: (I)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourceStop + (JNIEnv *, jobject, jint); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alSourceStopvNative + * Signature: (I[I)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourceStopvNative__I_3I + (JNIEnv *, jobject, jint, jintArray); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alSourceStopvNative + * Signature: (ILjava/nio/IntBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourceStopvNative__ILjava_nio_IntBuffer_2 + (JNIEnv *, jobject, jint, jobject); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alSourceRewind + * Signature: (I)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourceRewind + (JNIEnv *, jobject, jint); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alSourceRewindvNative + * Signature: (I[I)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourceRewindvNative__I_3I + (JNIEnv *, jobject, jint, jintArray); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alSourceRewindvNative + * Signature: (ILjava/nio/IntBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourceRewindvNative__ILjava_nio_IntBuffer_2 + (JNIEnv *, jobject, jint, jobject); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alSourceQueueBuffersNative + * Signature: (II[I)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourceQueueBuffersNative__II_3I + (JNIEnv *, jobject, jint, jint, jintArray); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alSourceQueueBuffersNative + * Signature: (IILjava/nio/IntBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourceQueueBuffersNative__IILjava_nio_IntBuffer_2 + (JNIEnv *, jobject, jint, jint, jobject); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alSourceUnqueueBuffersNative + * Signature: (II[I)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourceUnqueueBuffersNative__II_3I + (JNIEnv *, jobject, jint, jint, jintArray); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alSourceUnqueueBuffersNative + * Signature: (IILjava/nio/IntBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alSourceUnqueueBuffersNative__IILjava_nio_IntBuffer_2 + (JNIEnv *, jobject, jint, jint, jobject); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alListenerf + * Signature: (IF)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alListenerf + (JNIEnv *, jobject, jint, jfloat); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alListener3f + * Signature: (IFFF)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alListener3f + (JNIEnv *, jobject, jint, jfloat, jfloat, jfloat); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alListenerfv + * Signature: (I[F)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alListenerfv__I_3F + (JNIEnv *, jobject, jint, jfloatArray); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alListenerfv + * Signature: (ILjava/nio/FloatBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alListenerfv__ILjava_nio_FloatBuffer_2 + (JNIEnv *, jobject, jint, jobject); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alListeneri + * Signature: (II)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alListeneri + (JNIEnv *, jobject, jint, jint); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetListenerfNative + * Signature: (I[F)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetListenerfNative__I_3F + (JNIEnv *, jobject, jint, jfloatArray); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetListenerfNative + * Signature: (ILjava/nio/FloatBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetListenerfNative__ILjava_nio_FloatBuffer_2 + (JNIEnv *, jobject, jint, jobject); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetListenerf + * Signature: (I)F + */ +JNIEXPORT jfloat JNICALL Java_net_java_games_joal_ALImpl_alGetListenerf + (JNIEnv *, jobject, jint); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetListener3fNative + * Signature: (ILjava/nio/FloatBuffer;Ljava/nio/FloatBuffer;Ljava/nio/FloatBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetListener3fNative__ILjava_nio_FloatBuffer_2Ljava_nio_FloatBuffer_2Ljava_nio_FloatBuffer_2 + (JNIEnv *, jobject, jint, jobject, jobject, jobject); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetListener3fNative + * Signature: (I[F[F[F)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetListener3fNative__I_3F_3F_3F + (JNIEnv *, jobject, jint, jfloatArray, jfloatArray, jfloatArray); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetListenerfvNative + * Signature: (I[F)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetListenerfvNative__I_3F + (JNIEnv *, jobject, jint, jfloatArray); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetListenerfvNative + * Signature: (ILjava/nio/FloatBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetListenerfvNative__ILjava_nio_FloatBuffer_2 + (JNIEnv *, jobject, jint, jobject); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetListeneriNative + * Signature: (I[I)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetListeneriNative__I_3I + (JNIEnv *, jobject, jint, jintArray); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetListeneriNative + * Signature: (ILjava/nio/IntBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetListeneriNative__ILjava_nio_IntBuffer_2 + (JNIEnv *, jobject, jint, jobject); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetListeneri + * Signature: (I)I + */ +JNIEXPORT jint JNICALL Java_net_java_games_joal_ALImpl_alGetListeneri + (JNIEnv *, jobject, jint); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alEnable + * Signature: (I)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alEnable + (JNIEnv *, jobject, jint); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alDisable + * Signature: (I)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alDisable + (JNIEnv *, jobject, jint); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alIsEnabled + * Signature: (I)Z + */ +JNIEXPORT jboolean JNICALL Java_net_java_games_joal_ALImpl_alIsEnabled + (JNIEnv *, jobject, jint); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetBoolean + * Signature: (I)Z + */ +JNIEXPORT jboolean JNICALL Java_net_java_games_joal_ALImpl_alGetBoolean + (JNIEnv *, jobject, jint); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetDouble + * Signature: (I)D + */ +JNIEXPORT jdouble JNICALL Java_net_java_games_joal_ALImpl_alGetDouble + (JNIEnv *, jobject, jint); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetFloat + * Signature: (I)F + */ +JNIEXPORT jfloat JNICALL Java_net_java_games_joal_ALImpl_alGetFloat + (JNIEnv *, jobject, jint); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetInteger + * Signature: (I)I + */ +JNIEXPORT jint JNICALL Java_net_java_games_joal_ALImpl_alGetInteger + (JNIEnv *, jobject, jint); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetDoublevNative + * Signature: (I[D)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetDoublevNative__I_3D + (JNIEnv *, jobject, jint, jdoubleArray); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetDoublevNative + * Signature: (ILjava/nio/DoubleBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetDoublevNative__ILjava_nio_DoubleBuffer_2 + (JNIEnv *, jobject, jint, jobject); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetFloatvNative + * Signature: (I[F)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetFloatvNative__I_3F + (JNIEnv *, jobject, jint, jfloatArray); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetFloatvNative + * Signature: (ILjava/nio/FloatBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetFloatvNative__ILjava_nio_FloatBuffer_2 + (JNIEnv *, jobject, jint, jobject); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetIntegervNative + * Signature: (I[I)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetIntegervNative__I_3I + (JNIEnv *, jobject, jint, jintArray); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetIntegervNative + * Signature: (ILjava/nio/IntBuffer;)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alGetIntegervNative__ILjava_nio_IntBuffer_2 + (JNIEnv *, jobject, jint, jobject); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetString + * Signature: (I)Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_net_java_games_joal_ALImpl_alGetString + (JNIEnv *, jobject, jint); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alDistanceModel + * Signature: (I)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alDistanceModel + (JNIEnv *, jobject, jint); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alDopplerFactor + * Signature: (F)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alDopplerFactor + (JNIEnv *, jobject, jfloat); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alDopplerVelocity + * Signature: (F)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALImpl_alDopplerVelocity + (JNIEnv *, jobject, jfloat); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetError + * Signature: ()I + */ +JNIEXPORT jint JNICALL Java_net_java_games_joal_ALImpl_alGetError + (JNIEnv *, jobject); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alIsExtensionPresent + * Signature: (Ljava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_net_java_games_joal_ALImpl_alIsExtensionPresent + (JNIEnv *, jobject, jstring); + +/* + * Class: net_java_games_joal_ALImpl + * Method: alGetEnumValue + * Signature: (Ljava/lang/String;)I + */ +JNIEXPORT jint JNICALL Java_net_java_games_joal_ALImpl_alGetEnumValue + (JNIEnv *, jobject, jstring); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/src/native/alcbind.c b/src/native/alcbind.c new file mode 100644 index 0000000..e9a64a8 --- /dev/null +++ b/src/native/alcbind.c @@ -0,0 +1,140 @@ +/** +* Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* +* -Redistribution of source code must retain the above copyright notice, +* this list of conditions and the following disclaimer. +* +* -Redistribution 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 Sun Microsystems, Inc. or the names of contributors may +* be used to endorse or promote products derived from this software without +* specific prior written permission. +* +* This software is provided "AS IS," without a warranty of any kind. +* ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING +* ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR +* NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MIDROSYSTEMS, INC. ("SUN") AND ITS +* LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A +* RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. +* IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT +* OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR +* PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, +* ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS +* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +* +* You acknowledge that this software is not designed or intended for use in the +* design, construction, operation or maintenance of any nuclear facility. +*/ + + +#include "alcbind.h" +#include "extal.h" + + +JNIEXPORT jint JNICALL Java_net_java_games_joal_ALCImpl_openDeviceNative + (JNIEnv *env, jobject obj, jstring deviceName) { + jint result; + ALubyte *str; + str = (ALubyte*)(*env)->GetStringUTFChars(env,deviceName,NULL); + ALCdevice *device; + device = alcOpenDevice(str); + (*env)->ReleaseStringUTFChars(env,deviceName,str); + result = (jint)device; + return result; +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALCImpl_closeDeviceNative + (JNIEnv *env, jobject obj, jint pointer) { + ALCdevice* device = (ALCdevice*)pointer; + alcCloseDevice(device); +} + +JNIEXPORT jint JNICALL Java_net_java_games_joal_ALCImpl_createContextNative + (JNIEnv *env, jobject obj, jint pointer, jintArray attrs) { + ALCdevice* device = (ALCdevice*)pointer; + ALint* attrList = NULL; + if(attrs != NULL) { + attrList = (ALint*)(*env)->GetPrimitiveArrayCritical(env,attrs,0); + } + jint ctxPtr = (jint)alcCreateContext(device,attrList); + (*env)->ReleasePrimitiveArrayCritical(env,attrs,attrList,0); + return ctxPtr; +} + +JNIEXPORT jint JNICALL Java_net_java_games_joal_ALCImpl_makeContextCurrentNative + (JNIEnv *env, jobject obj, jint pointer) { + ALvoid* alcHandle = (ALvoid*)pointer; + alcMakeContextCurrent(alcHandle); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALCImpl_processContextNative + (JNIEnv *env, jobject obj, jint pointer) { + ALvoid* alcHandle = (ALvoid*)pointer; + alcProcessContext(alcHandle); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALCImpl_suspendContextNative + (JNIEnv *env, jobject obj, jint pointer) { + ALvoid* alcHandle = (ALvoid*)pointer; + alcSuspendContext(alcHandle); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALCImpl_destroyContextNative + (JNIEnv *env, jobject obj, jint pointer) { + ALvoid* alcHandle = (ALvoid*)pointer; + alcDestroyContext(alcHandle); +} +/* +JNIEXPORT jint JNICALL Java_net_java_games_joal_ALCImpl_getError + (JNIEnv *env, jobject obj) { + jint result = 0; +// result = alcGetError(); + return result; +} +*/ +JNIEXPORT jint JNICALL Java_net_java_games_joal_ALCImpl_getCurrentContextNative + (JNIEnv *env, jobject obj) { + jint result; + result = (jint)alcGetCurrentContext(); + return result; +} + +JNIEXPORT jint JNICALL Java_net_java_games_joal_ALCImpl_getEnumValueNative + (JNIEnv *env, jobject obj, jint pointer, jstring enumName) { + jint result; + ALCdevice* device = (ALCdevice*)pointer; + ALubyte* str; + str = (ALubyte*)(*env)->GetStringUTFChars(env,enumName,NULL); + result = alcGetEnumValue(device, str); + (*env)->ReleaseStringUTFChars(env,enumName,str); + return result; +} + +JNIEXPORT jint JNICALL Java_net_java_games_joal_ALCImpl_getContextsDeviceNative + (JNIEnv *env, jobject obj, jint ptr) { + jint result; + ALvoid* alcHandle = (ALvoid*)ptr; + result = (jint)alcGetContextsDevice(alcHandle); + return result; +} +JNIEXPORT jstring JNICALL Java_net_java_games_joal_ALCImpl_alcGetStringNative + (JNIEnv *env, jobject obj, jint ptr, jint pname) { + ALCdevice *device = (ALCdevice*)ptr; + ALubyte* p = alcGetString(device,(ALenum)pname); + return (*env)->NewStringUTF(env, p); +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_ALCImpl_alcGetIntegervNative + (JNIEnv *env, jobject obj, jint ptr, jint pname, jint size, jintArray data) { + ALint *p = (ALint*)(*env)->GetPrimitiveArrayCritical(env,data,0); + ALCdevice *device = (ALCdevice*)ptr; + if(p) { + alcGetIntegerv(device,(ALenum)pname,(ALsizei)size,p); + } + (*env)->ReleasePrimitiveArrayCritical(env,data,p,0); +} diff --git a/src/native/alcbind.h b/src/native/alcbind.h new file mode 100644 index 0000000..27ceffe --- /dev/null +++ b/src/native/alcbind.h @@ -0,0 +1,148 @@ +/** +* Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* +* -Redistribution of source code must retain the above copyright notice, +* this list of conditions and the following disclaimer. +* +* -Redistribution 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 Sun Microsystems, Inc. or the names of contributors may +* be used to endorse or promote products derived from this software without +* specific prior written permission. +* +* This software is provided "AS IS," without a warranty of any kind. +* ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING +* ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR +* NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MIDROSYSTEMS, INC. ("SUN") AND ITS +* LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A +* RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. +* IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT +* OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR +* PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, +* ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS +* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +* +* You acknowledge that this software is not designed or intended for use in the +* design, construction, operation or maintenance of any nuclear facility. +*/ +#include <jni.h> +/* Header for class net_java_games_joal_ALCImpl */ + +#ifndef _Included_net_java_games_joal_ALCImpl +#define _Included_net_java_games_joal_ALCImpl +#ifdef __cplusplus +extern "C" { +#endif +/* + * Class: net_java_games_joal_ALCImpl + * Method: openDeviceNative + * Signature: (Ljava/lang/String;)I + */ +JNIEXPORT jint JNICALL Java_net_java_games_joal_ALCImpl_openDeviceNative + (JNIEnv *, jobject, jstring); + +/* + * Class: net_java_games_joal_ALCImpl + * Method: closeDeviceNative + * Signature: (I)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALCImpl_closeDeviceNative + (JNIEnv *, jobject, jint); + +/* + * Class: net_java_games_joal_ALCImpl + * Method: createContextNative + * Signature: (I[I)I + */ +JNIEXPORT jint JNICALL Java_net_java_games_joal_ALCImpl_createContextNative + (JNIEnv *, jobject, jint, jintArray); + +/* + * Class: net_java_games_joal_ALCImpl + * Method: makeContextCurrentNative + * Signature: (I)I + */ +JNIEXPORT jint JNICALL Java_net_java_games_joal_ALCImpl_makeContextCurrentNative + (JNIEnv *, jobject, jint); + +/* + * Class: net_java_games_joal_ALCImpl + * Method: processContextNative + * Signature: (I)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALCImpl_processContextNative + (JNIEnv *, jobject, jint); + +/* + * Class: net_java_games_joal_ALCImpl + * Method: suspendContextNative + * Signature: (I)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALCImpl_suspendContextNative + (JNIEnv *, jobject, jint); + +/* + * Class: net_java_games_joal_ALCImpl + * Method: destroyContextNative + * Signature: (I)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALCImpl_destroyContextNative + (JNIEnv *, jobject, jint); + +/* + * Class: net_java_games_joal_ALCImpl + * Method: alcGetError + * Signature: ()I + */ +JNIEXPORT jint JNICALL Java_net_java_games_joal_ALCImpl_alcGetError + (JNIEnv *, jobject); + +/* + * Class: net_java_games_joal_ALCImpl + * Method: getCurrentContextNative + * Signature: ()I + */ +JNIEXPORT jint JNICALL Java_net_java_games_joal_ALCImpl_getCurrentContextNative + (JNIEnv *, jobject); + +/* + * Class: net_java_games_joal_ALCImpl + * Method: getEnumValueNative + * Signature: (ILjava/lang/String;)I + */ +JNIEXPORT jint JNICALL Java_net_java_games_joal_ALCImpl_getEnumValueNative + (JNIEnv *, jobject, jint, jstring); + +/* + * Class: net_java_games_joal_ALCImpl + * Method: alcGetStringNative + * Signature: (II)Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL Java_net_java_games_joal_ALCImpl_alcGetStringNative + (JNIEnv *, jobject, jint, jint); + +/* + * Class: net_java_games_joal_ALCImpl + * Method: alcGetIntegervNative + * Signature: (III[I)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_ALCImpl_alcGetIntegervNative + (JNIEnv *, jobject, jint, jint, jint, jintArray); + +/* + * Class: net_java_games_joal_ALCImpl + * Method: getContextDeviceNative + * Signature: (I)I + */ +JNIEXPORT jint JNICALL Java_net_java_games_joal_ALCImpl_getContextDeviceNative + (JNIEnv *, jobject, jint); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/src/native/alfactory.c b/src/native/alfactory.c new file mode 100644 index 0000000..f38f358 --- /dev/null +++ b/src/native/alfactory.c @@ -0,0 +1,47 @@ +/** +* Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* +* -Redistribution of source code must retain the above copyright notice, +* this list of conditions and the following disclaimer. +* +* -Redistribution 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 Sun Microsystems, Inc. or the names of contributors may +* be used to endorse or promote products derived from this software without +* specific prior written permission. +* +* This software is provided "AS IS," without a warranty of any kind. +* ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING +* ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR +* NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MIDROSYSTEMS, INC. ("SUN") AND ITS +* LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A +* RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. +* IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT +* OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR +* PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, +* ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS +* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +* +* You acknowledge that this software is not designed or intended for use in the +* design, construction, operation or maintenance of any nuclear facility. +*/ + +#include "alfactory.h" +#include "extal.h" +#include <jni.h> + +JNIEXPORT jboolean JNICALL Java_net_java_games_joal_ALFactory_init + (JNIEnv *env , jclass clazz, jobjectArray oalPaths) { + return InitializeOpenAL(env,oalPaths); +} + +JNIEXPORT jboolean JNICALL Java_net_java_games_joal_ALFactory_deinitialize + (JNIEnv *env, jclass clazz) { + DeInitializeOpenAL(); + return 1; +} diff --git a/src/native/alfactory.h b/src/native/alfactory.h new file mode 100644 index 0000000..48c301c --- /dev/null +++ b/src/native/alfactory.h @@ -0,0 +1,66 @@ +/** +* Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* +* -Redistribution of source code must retain the above copyright notice, +* this list of conditions and the following disclaimer. +* +* -Redistribution 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 Sun Microsystems, Inc. or the names of contributors may +* be used to endorse or promote products derived from this software without +* specific prior written permission. +* +* This software is provided "AS IS," without a warranty of any kind. +* ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING +* ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR +* NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MIDROSYSTEMS, INC. ("SUN") AND ITS +* LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A +* RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. +* IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT +* OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR +* PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, +* ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS +* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +* +* You acknowledge that this software is not designed or intended for use in the +* design, construction, operation or maintenance of any nuclear facility. +*/ + + +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> +/* Header for class net_java_games_joal_ALFactory */ + +#ifndef _Included_net_java_games_joal_ALFactory +#define _Included_net_java_games_joal_ALFactory +#ifdef __cplusplus +extern "C" { +#endif +/* Inaccessible static: isInitialized */ +/* Inaccessible static: al */ +/* Inaccessible static: alc */ +/* + * Class: net_java_games_joal_ALFactory + * Method: initialize + * Signature: ()Z + */ +JNIEXPORT jboolean JNICALL Java_net_java_games_joal_ALFactory_init + (JNIEnv *, jclass, jobjectArray); + +/* + * Class: net_java_games_joal_ALFactory + * Method: deinitialize + * Signature: ()Z + */ +JNIEXPORT jboolean JNICALL Java_net_java_games_joal_ALFactory_deinitialize + (JNIEnv *, jclass); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/src/native/build.xml b/src/native/build.xml new file mode 100644 index 0000000..531da19 --- /dev/null +++ b/src/native/build.xml @@ -0,0 +1,71 @@ +<?xml version="1.0"?> + +<!-- +* Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* +* -Redistribution of source code must retain the above copyright notice, +* this list of conditions and the following disclaimer. +* +* -Redistribution 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 Sun Microsystems, Inc. or the names of contributors may +* be used to endorse or promote products derived from this software without +* specific prior written permission. +* +* This software is provided "AS IS," without a warranty of any kind. +* ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING +* ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR +* NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MIDROSYSTEMS, INC. ("SUN") AND ITS +* LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A +* RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. +* IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT +* OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR +* PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, +* ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS +* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +* +* You acknowledge that this software is not designed or intended for use in the +* design, construction, operation or maintenance of any nuclear facility. +--> + + +<project name="Sun Games Initiative Client Technologies" basedir="." default="all"> + + <target name="init"> + <property name="cc" value ="gcc"/> + <property name="no_cygwin" value="-mno-cygwin"/> + <property name="include" value="-I${jdk.home}/include -I${jdk.home}/include/win32 -I'${openal.home}'/include" /> + <property name="compilerflags" value ="-O3 -Wl,--add-stdcall-alias -shared"/> + <property name="output" value="../../lib/joal.dll"/> + <property name="sources" value="extal.c eaxfactory.c eaxbind.c alfactory.c alcbind.c albind.c"/> + <property name="specs" value="-specs='./specs.new'"/> + </target> + + <target name="compile" depends="init"> + <exec executable="${cc}" os="Windows 2000, Windows XP"> + <arg line=" ${no_cygwin}"/> + <arg line=" ${include}"/> + <arg line=" ${compilerflags}"/> + <arg line=" -o ${output}"/> + <arg line=" ${sources}"/> + </exec> + </target> + + <target name="javadoc" depends="init"> + <ant dir="src/java" target="javadoc"/> + </target> + + + <target name="all" depends="init,compile" description="Build everything."> + <echo message="Application built."/> + </target> + + <target name="clean" description="Clean all build products."> + <delete file="../../bin/joal.dll" /> + </target> +</project> diff --git a/src/native/eaxbind.c b/src/native/eaxbind.c new file mode 100644 index 0000000..da1b285 --- /dev/null +++ b/src/native/eaxbind.c @@ -0,0 +1,85 @@ +/** +* Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* +* -Redistribution of source code must retain the above copyright notice, +* this list of conditions and the following disclaimer. +* +* -Redistribution 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 Sun Microsystems, Inc. or the names of contributors may +* be used to endorse or promote products derived from this software without +* specific prior written permission. +* +* This software is provided "AS IS," without a warranty of any kind. +* ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING +* ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR +* NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MIDROSYSTEMS, INC. ("SUN") AND ITS +* LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A +* RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. +* IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT +* OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR +* PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, +* ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS +* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +* +* You acknowledge that this software is not designed or intended for use in the +* design, construction, operation or maintenance of any nuclear facility. +*/ + + +#include "eaxbind.h" +#include "extal.h" +#ifdef _WIN32 +const GUID DSPROPSETID_EAX20_ListenerProperties + = { 0x306a6a8, 0xb224, 0x11d2, { 0x99, 0xe5, 0x0, 0x0, 0xe8, 0xd8, 0xc7, 0x22 } }; + +const GUID DSPROPSETID_EAX20_BufferProperties + = { 0x306a6a7, 0xb224, 0x11d2, {0x99, 0xe5, 0x0, 0x0, 0xe8, 0xd8, 0xc7, 0x22 } }; +#endif + +JNIEXPORT void JNICALL Java_net_java_games_joal_eax_EAX_EAXSet + (JNIEnv *env, + jobject obj, + jint gflag, + jint pname, + jint source, + jobject buff, + jint size) { +#ifdef _WIN32 + ALvoid* p = (ALvoid*)(*env)->GetDirectBufferAddress(env,buff); + + const GUID* guid = (gflag == 0 ? &DSPROPSETID_EAX20_ListenerProperties : + &DSPROPSETID_EAX20_BufferProperties); + eaxSet(guid, + (ALuint) pname, + (ALuint)source, + p, + (ALuint)size); +#endif +} + +JNIEXPORT void JNICALL Java_net_java_games_joal_eax_EAX_EAXGet + (JNIEnv *env, + jobject obj, + jint gflag, + jint pname, + jint source, + jobject buff, + jint size) { +#ifdef _WIN32 + ALvoid* p = (ALvoid*)(*env)->GetDirectBufferAddress(env,buff); + const GUID* guid = (gflag == 0 ? &DSPROPSETID_EAX20_ListenerProperties : + &DSPROPSETID_EAX20_BufferProperties); + eaxGet(guid, + (ALuint) pname, + (ALuint) source, + p, + (ALuint) size); +#endif +} + diff --git a/src/native/eaxbind.h b/src/native/eaxbind.h new file mode 100644 index 0000000..9450313 --- /dev/null +++ b/src/native/eaxbind.h @@ -0,0 +1,63 @@ +/** +* Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* +* -Redistribution of source code must retain the above copyright notice, +* this list of conditions and the following disclaimer. +* +* -Redistribution 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 Sun Microsystems, Inc. or the names of contributors may +* be used to endorse or promote products derived from this software without +* specific prior written permission. +* +* This software is provided "AS IS," without a warranty of any kind. +* ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING +* ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR +* NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MIDROSYSTEMS, INC. ("SUN") AND ITS +* LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A +* RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. +* IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT +* OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR +* PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, +* ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS +* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +* +* You acknowledge that this software is not designed or intended for use in the +* design, construction, operation or maintenance of any nuclear facility. +*/ + + +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> +/* Header for class net_java_games_joal_eax_EAX */ + +#ifndef _Included_net_java_games_joal_eax_EAX +#define _Included_net_java_games_joal_eax_EAX +#ifdef __cplusplus +extern "C" { +#endif +/* + * Class: net_java_games_joal_eax_EAX + * Method: _eaxSet + * Signature: (IIILjava/nio/ByteBuffer;I)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_eax_EAX_EAXSet + (JNIEnv *, jobject, jint, jint, jint, jobject, jint); + +/* + * Class: net_java_games_joal_eax_EAX + * Method: _eaxGet + * Signature: (IIILjava/nio/ByteBuffer;I)V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_eax_EAX_EAXGet + (JNIEnv *, jobject, jint, jint, jint, jobject, jint); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/src/native/eaxfactory.c b/src/native/eaxfactory.c new file mode 100644 index 0000000..708ddda --- /dev/null +++ b/src/native/eaxfactory.c @@ -0,0 +1,50 @@ +/** +* Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* +* -Redistribution of source code must retain the above copyright notice, +* this list of conditions and the following disclaimer. +* +* -Redistribution 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 Sun Microsystems, Inc. or the names of contributors may +* be used to endorse or promote products derived from this software without +* specific prior written permission. +* +* This software is provided "AS IS," without a warranty of any kind. +* ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING +* ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR +* NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MIDROSYSTEMS, INC. ("SUN") AND ITS +* LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A +* RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. +* IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT +* OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR +* PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, +* ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS +* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +* +* You acknowledge that this software is not designed or intended for use in the +* design, construction, operation or maintenance of any nuclear facility. +*/ + + +#include "eaxfactory.h" +#include "extal.h" + +/* + * had some problems getting this from extal.h + */ + +JNIEXPORT void JNICALL Java_net_java_games_joal_eax_EAXFactory_init + (JNIEnv *env, jclass clazz) { +#ifdef _WIN32 + if(alIsExtensionPresent("EAX2.0")) { + eaxSet = alGetProcAddress((ALubyte*)"EAXSet"); + eaxGet = alGetProcAddress((ALubyte*)"EAXGet"); + } +#endif +} diff --git a/src/native/eaxfactory.h b/src/native/eaxfactory.h new file mode 100644 index 0000000..1a58cd8 --- /dev/null +++ b/src/native/eaxfactory.h @@ -0,0 +1,58 @@ +/** +* Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* +* -Redistribution of source code must retain the above copyright notice, +* this list of conditions and the following disclaimer. +* +* -Redistribution 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 Sun Microsystems, Inc. or the names of contributors may +* be used to endorse or promote products derived from this software without +* specific prior written permission. +* +* This software is provided "AS IS," without a warranty of any kind. +* ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING +* ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR +* NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MIDROSYSTEMS, INC. ("SUN") AND ITS +* LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A +* RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. +* IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT +* OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR +* PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, +* ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS +* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +* +* You acknowledge that this software is not designed or intended for use in the +* design, construction, operation or maintenance of any nuclear facility. +*/ + + +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> +/* Header for class net_java_games_joal_eax_EAXFactory */ + +#ifndef _Included_net_java_games_joal_eax_EAXFactory +#define _Included_net_java_games_joal_eax_EAXFactory +#ifdef __cplusplus +extern "C" { +#endif +/* Inaccessible static: SOURCE_GUID */ +/* Inaccessible static: LISTENER_GUID */ +/* Inaccessible static: eax */ +/* + * Class: net_java_games_joal_eax_EAXFactory + * Method: init + * Signature: ()V + */ +JNIEXPORT void JNICALL Java_net_java_games_joal_eax_EAXFactory_init + (JNIEnv *, jclass); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/src/native/extal.c b/src/native/extal.c new file mode 100644 index 0000000..f7998cc --- /dev/null +++ b/src/native/extal.c @@ -0,0 +1,416 @@ +/* + * 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 <stdio.h> +#include <jni.h> +#include "extal.h" + +#ifdef _X11 +#include <dlfcn.h> +#endif + +/** + * $Id$ + * + * This file contains the AL extension assigning mechanism + * + * @author Brian Matzon <[email protected]> + * @version $Revision$ + */ +alEnablePROC alEnable = NULL; +alDisablePROC alDisable = NULL; +alIsEnabledPROC alIsEnabled = NULL; +alHintPROC alHint = NULL; +alGetBooleanPROC alGetBoolean = NULL; +alGetIntegerPROC alGetInteger = NULL; +alGetFloatPROC alGetFloat = NULL; +alGetDoublePROC alGetDouble = NULL; +alGetBooleanvPROC alGetBooleanv = NULL; +alGetIntegervPROC alGetIntegerv = NULL; +alGetFloatvPROC alGetFloatv = NULL; +alGetDoublevPROC alGetDoublev = NULL; +alGetStringPROC alGetString = NULL; +alGetErrorPROC alGetError = NULL; +alIsExtensionPresentPROC alIsExtensionPresent = NULL; +alGetProcAddressPROC alGetProcAddress = NULL; +alGetEnumValuePROC alGetEnumValue = NULL; +alListeneriPROC alListeneri = NULL; +alListenerfPROC alListenerf = NULL; +alListener3fPROC alListener3f = NULL; +alListenerfvPROC alListenerfv = NULL; +alGetListeneriPROC alGetListeneri = NULL; +alGetListenerfPROC alGetListenerf = NULL; +alGetListener3fPROC alGetListener3f = NULL; +alGetListenerfvPROC alGetListenerfv = NULL; +alGenSourcesPROC alGenSources = NULL; +alDeleteSourcesPROC alDeleteSources = NULL; +alIsSourcePROC alIsSource = NULL; +alSourceiPROC alSourcei = NULL; +alSourcefPROC alSourcef = NULL; +alSource3fPROC alSource3f = NULL; +alSourcefvPROC alSourcefv = NULL; +alGetSourceiPROC alGetSourcei = NULL; +alGetSourcefPROC alGetSourcef = NULL; +alGetSource3fPROC alGetSource3f = NULL; +alGetSourcefvPROC alGetSourcefv = NULL; +alSourcePlayvPROC alSourcePlayv = NULL; +alSourcePausevPROC alSourcePausev = NULL; +alSourceStopvPROC alSourceStopv = NULL; +alSourceRewindvPROC alSourceRewindv = NULL; +alSourcePlayPROC alSourcePlay = NULL; +alSourcePausePROC alSourcePause = NULL; +alSourceStopPROC alSourceStop = NULL; +alSourceRewindPROC alSourceRewind = NULL; +alGenBuffersPROC alGenBuffers = NULL; +alDeleteBuffersPROC alDeleteBuffers = NULL; +alIsBufferPROC alIsBuffer = NULL; +alBufferDataPROC alBufferData = NULL; +alGetBufferiPROC alGetBufferi = NULL; +alGetBufferfPROC alGetBufferf = NULL; +alSourceQueueBuffersPROC alSourceQueueBuffers = NULL; +alSourceUnqueueBuffersPROC alSourceUnqueueBuffers = NULL; +alDistanceModelPROC alDistanceModel = NULL; +alDopplerFactorPROC alDopplerFactor = NULL; +alDopplerVelocityPROC alDopplerVelocity = NULL; +alcGetStringPROC alcGetString = NULL; +alcGetIntegervPROC alcGetIntegerv = NULL; +alcOpenDevicePROC alcOpenDevice = NULL; +alcCloseDevicePROC alcCloseDevice = NULL; +alcCreateContextPROC alcCreateContext = NULL; +alcMakeContextCurrentPROC alcMakeContextCurrent = NULL; +alcProcessContextPROC alcProcessContext = NULL; +alcGetCurrentContextPROC alcGetCurrentContext = NULL; +alcGetContextsDevicePROC alcGetContextsDevice = NULL; +alcSuspendContextPROC alcSuspendContext = NULL; +alcDestroyContextPROC alcDestroyContext = NULL; +alcGetErrorPROC alcGetError = NULL; +alcIsExtensionPresentPROC alcIsExtensionPresent = NULL; +alcGetProcAddressPROC alcGetProcAddress = NULL; +alcGetEnumValuePROC alcGetEnumValue = NULL; + +#ifdef _WIN32 +EAXSet eaxSet; // EAXSet function, ret$ +EAXGet eaxGet; // EAXGet function, ret$ + +/* Handle to OpenAL Library */ +HMODULE handleOAL; +#else +void* handleOAL; +#endif + +/* Loads OpenAL */ +void LoadOpenAL(); + +/* Unloads OpenAL */ +void UnLoadOpenAL(); + +/* Gets a pointer to the named function */ +void* GetFunctionPointer(const char* function); + +/* Loads OpenAL basic functions */ +int LoadAL(); + +/* Loads OpenAL ALC functions */ +int LoadALC(); + +/* Loads any extensions to OpenAL */ +int LoadALExtensions(); + +/** + * Retrieves a pointer to the named function + * + * @param function Name of function + * @return pointer to named function, or NULL if not found + */ +void* GetFunctionPointer(const char* function) { +#ifdef _WIN32 + return GetProcAddress(handleOAL, function); +#endif +#ifdef _X11 + return dlsym(handleOAL, function); +#endif +} + +/** + * Loads the OpenAL Library + */ +void LoadOpenAL(JNIEnv *env, jobjectArray oalPaths) { + jsize pathcount = (*env)->GetArrayLength(env,oalPaths); +#ifdef _DEBUG + printf("Found %d OpenAL paths\n", pathcount); +#endif + int i; + for(i=0;i<pathcount;i++) { + jstring path = (jstring) (*env)->GetObjectArrayElement(env,oalPaths, i); + const char *path_str = (*env)->GetStringUTFChars(env,path, NULL); +#ifdef _DEBUG + printf("Testing '%s'\n", path_str); +#endif +#ifdef _WIN32 + handleOAL = LoadLibrary(path_str); +#endif +#ifdef _X11 + handleOAL = dlopen(path_str, RTLD_LAZY); +#endif + if (handleOAL != NULL) { +#ifdef _DEBUG + printf("Found OpenAL at '%s'\n", path_str); +#endif + break; + } + (*env)->ReleaseStringUTFChars(env, path, path_str); + } +} + +/** + * Unloads the OpenAL Library + */ +void UnLoadOpenAL() { +#ifdef _WIN32 + FreeLibrary(handleOAL); +#endif +#ifdef _X11 + dlclose(handleOAL); +#endif +} + +/** + * Initializes OpenAL by loading the library + */ +int InitializeOpenAL(JNIEnv *env, jobjectArray oalPaths) { + if(handleOAL != 0) { + return JNI_TRUE; + } + + //load our library + LoadOpenAL(env, oalPaths); + + // if we couldn't load the library, get out + if(handleOAL == 0) { + return JNI_FALSE; + } + + //load basic OpenAL functions + if(!LoadAL()) { + return JNI_FALSE; + } + + //load OpenAL context functions + if(!LoadALC()) { + return JNI_FALSE; + } + + //load OpenAL extensions + if(!LoadALExtensions()) { + return JNI_FALSE; + } + + return JNI_TRUE; +} + +/** + * Called to deinitialize OpenAL + */ +void DeInitializeOpenAL() { + UnLoadOpenAL(); + handleOAL = 0; +} + +/** + * Loads the basic OpenAL functions + * + * @return true if all methods were loaded, false if one of the methods could not be loaded + */ +int LoadAL() { + alEnable = (alEnablePROC) GetFunctionPointer("alEnable"); + alDisable = (alDisablePROC) GetFunctionPointer("alDisable"); + alIsEnabled = (alIsEnabledPROC) GetFunctionPointer("alIsEnabled"); + //alHint = (alHintPROC) GetFunctionPointer("alHint"); + alGetBoolean = (alGetBooleanPROC) GetFunctionPointer("alGetBoolean"); + alGetInteger = (alGetIntegerPROC) GetFunctionPointer("alGetInteger"); + alGetFloat = (alGetFloatPROC) GetFunctionPointer("alGetFloat"); + alGetDouble = (alGetDoublePROC) GetFunctionPointer("alGetDouble"); + alGetBooleanv = (alGetBooleanvPROC) GetFunctionPointer("alGetBooleanv"); + alGetIntegerv = (alGetIntegervPROC) GetFunctionPointer("alGetIntegerv"); + alGetFloatv = (alGetFloatvPROC) GetFunctionPointer("alGetFloatv"); + alGetDoublev = (alGetDoublevPROC) GetFunctionPointer("alGetDoublev"); + alGetString = (alGetStringPROC) GetFunctionPointer("alGetString"); + alGetError = (alGetErrorPROC) GetFunctionPointer("alGetError"); + alIsExtensionPresent = (alIsExtensionPresentPROC) GetFunctionPointer("alIsExtensionPresent"); + alGetProcAddress = (alGetProcAddressPROC) GetFunctionPointer("alGetProcAddress"); + alGetEnumValue = (alGetEnumValuePROC) GetFunctionPointer("alGetEnumValue"); + alListeneri = (alListeneriPROC) GetFunctionPointer("alListeneri"); + alListenerf = (alListenerfPROC) GetFunctionPointer("alListenerf"); + alListener3f = (alListener3fPROC) GetFunctionPointer("alListener3f"); + alListenerfv = (alListenerfvPROC) GetFunctionPointer("alListenerfv"); + alGetListeneri = (alGetListeneriPROC) GetFunctionPointer("alGetListeneri"); + alGetListenerf = (alGetListenerfPROC) GetFunctionPointer("alGetListenerf"); + alGetListener3f = (alGetListener3fPROC) GetFunctionPointer("alGetListener3f"); + alGetListenerfv = (alGetListenerfvPROC) GetFunctionPointer("alGetListenerfv"); + alGenSources = (alGenSourcesPROC) GetFunctionPointer("alGenSources"); + alDeleteSources = (alDeleteSourcesPROC) GetFunctionPointer("alDeleteSources"); + alIsSource = (alIsSourcePROC) GetFunctionPointer("alIsSource"); + alSourcei = (alSourceiPROC) GetFunctionPointer("alSourcei"); + alSourcef = (alSourcefPROC) GetFunctionPointer("alSourcef"); + alSource3f = (alSource3fPROC) GetFunctionPointer("alSource3f"); + alSourcefv = (alSourcefvPROC) GetFunctionPointer("alSourcefv"); + alGetSourcei = (alGetSourceiPROC) GetFunctionPointer("alGetSourcei"); + alGetSourcef = (alGetSourcefPROC) GetFunctionPointer("alGetSourcef"); + alGetSource3f = (alGetSource3fPROC) GetFunctionPointer("alGetSource3f"); + alGetSourcefv = (alGetSourcefvPROC) GetFunctionPointer("alGetSourcefv"); + alSourcePlayv = (alSourcePlayvPROC) GetFunctionPointer("alSourcePlayv"); + alSourcePausev = (alSourcePausevPROC) GetFunctionPointer("alSourcePausev"); + alSourceStopv = (alSourceStopvPROC) GetFunctionPointer("alSourceStopv"); + alSourceRewindv = (alSourceRewindvPROC) GetFunctionPointer("alSourceRewindv"); + alSourcePlay = (alSourcePlayPROC) GetFunctionPointer("alSourcePlay"); + alSourcePause = (alSourcePausePROC) GetFunctionPointer("alSourcePause"); + alSourceStop = (alSourceStopPROC) GetFunctionPointer("alSourceStop"); + alSourceRewind = (alSourceRewindPROC) GetFunctionPointer("alSourceRewind"); + alGenBuffers = (alGenBuffersPROC) GetFunctionPointer("alGenBuffers"); + alDeleteBuffers = (alDeleteBuffersPROC) GetFunctionPointer("alDeleteBuffers"); + alIsBuffer = (alIsBufferPROC) GetFunctionPointer("alIsBuffer"); + alBufferData = (alBufferDataPROC) GetFunctionPointer("alBufferData"); + alGetBufferi = (alGetBufferiPROC) GetFunctionPointer("alGetBufferi"); + alGetBufferf = (alGetBufferfPROC) GetFunctionPointer("alGetBufferf"); + alSourceQueueBuffers = (alSourceQueueBuffersPROC) GetFunctionPointer("alSourceQueueBuffers"); + alSourceUnqueueBuffers = (alSourceUnqueueBuffersPROC) GetFunctionPointer("alSourceUnqueueBuffers"); + alDistanceModel = (alDistanceModelPROC) GetFunctionPointer("alDistanceModel"); + alDopplerFactor = (alDopplerFactorPROC) GetFunctionPointer("alDopplerFactor"); + alDopplerVelocity = (alDopplerVelocityPROC) GetFunctionPointer("alDopplerVelocity"); + + return + alEnable != NULL && + alDisable != NULL && + alIsEnabled != NULL && + //alHint != NULL && + alGetBoolean != NULL && + alGetInteger != NULL && + alGetFloat != NULL && + alGetDouble != NULL && + alGetBooleanv != NULL && + alGetIntegerv != NULL && + alGetFloatv != NULL && + alGetDoublev != NULL && + alGetString != NULL && + alGetError != NULL && + alIsExtensionPresent != NULL && + alGetProcAddress != NULL && + alGetEnumValue != NULL && + alListeneri != NULL && + alListenerf != NULL && + alListener3f != NULL && + alListenerfv != NULL && + alGetListeneri != NULL && + alGetListenerf != NULL && + alGetListener3f != NULL && + alGetListenerfv != NULL && + alGenSources != NULL && + alDeleteSources != NULL && + alIsSource != NULL && + alSourcei != NULL && + alSourcef != NULL && + alSource3f != NULL && + alSourcefv != NULL && + alGetSourcei != NULL && + alGetSourcef != NULL && + alGetSource3f != NULL && + alGetSourcefv != NULL && + alSourcePlayv != NULL && + alSourcePausev != NULL && + alSourceStopv != NULL && + alSourceRewindv != NULL && + alSourcePlay != NULL && + alSourcePause != NULL && + alSourceStop != NULL && + alSourceRewind != NULL && + alGenBuffers != NULL && + alDeleteBuffers != NULL && + alIsBuffer != NULL && + alBufferData != NULL && + alGetBufferi != NULL && + alGetBufferf != NULL && + alSourceQueueBuffers != NULL && + alSourceUnqueueBuffers != NULL && + alDistanceModel != NULL && + alDopplerFactor != NULL && + alDopplerVelocity != NULL; +} + +/** + * Loads the context OpenAL functions + * + * @return true if all methods were loaded, false if one of the methods could not be loaded + */ +int LoadALC() { + alcGetString = (alcGetStringPROC) GetFunctionPointer("alcGetString"); + alcGetIntegerv = (alcGetIntegervPROC) GetFunctionPointer("alcGetIntegerv"); + alcOpenDevice = (alcOpenDevicePROC) GetFunctionPointer("alcOpenDevice"); + alcCloseDevice = (alcCloseDevicePROC) GetFunctionPointer("alcCloseDevice"); + alcCreateContext = (alcCreateContextPROC) GetFunctionPointer("alcCreateContext"); + alcMakeContextCurrent = (alcMakeContextCurrentPROC) GetFunctionPointer("alcMakeContextCurrent"); + alcProcessContext = (alcProcessContextPROC) GetFunctionPointer("alcProcessContext"); + alcGetCurrentContext = (alcGetCurrentContextPROC) GetFunctionPointer("alcGetCurrentContext"); + alcGetContextsDevice = (alcGetContextsDevicePROC) GetFunctionPointer("alcGetContextsDevice"); + alcSuspendContext = (alcSuspendContextPROC) GetFunctionPointer("alcSuspendContext"); + alcDestroyContext = (alcDestroyContextPROC) GetFunctionPointer("alcDestroyContext"); + alcGetError = (alcGetErrorPROC) GetFunctionPointer("alcGetError"); + alcIsExtensionPresent = (alcIsExtensionPresentPROC) GetFunctionPointer("alcIsExtensionPresent"); + alcGetProcAddress = (alcGetProcAddressPROC) GetFunctionPointer("alcGetProcAddress"); + alcGetEnumValue = (alcGetEnumValuePROC) GetFunctionPointer("alcGetEnumValue"); + + return + alcGetString != NULL && + alcGetIntegerv != NULL && + alcOpenDevice != NULL && + alcCloseDevice != NULL && + alcCreateContext != NULL && + alcMakeContextCurrent != NULL && + alcProcessContext != NULL && + alcGetCurrentContext != NULL && + alcGetContextsDevice != NULL && + alcSuspendContext != NULL && + alcDestroyContext != NULL && + alcGetError != NULL && + alcIsExtensionPresent != NULL && + alcGetProcAddress != NULL && + alcGetEnumValue != NULL; +} + +/** + * Loads the OpenAL extensions functions + * + * @return true if all methods were loaded, false if one of the methods could not be loaded + */ +int LoadALExtensions() { + return JNI_TRUE; +} + diff --git a/src/native/extal.h b/src/native/extal.h new file mode 100644 index 0000000..ae84ac8 --- /dev/null +++ b/src/native/extal.h @@ -0,0 +1,315 @@ +/* + * 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. + */ + +#ifndef _EXTAL_H +#define _EXTAL_H + +#ifdef _WIN32 +#include <windows.h> +#endif +#include <altypes.h> +#include <alctypes.h> +#include <jni.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef _WIN32 + #ifdef _OPENAL32LIB + #define ALCAPI __declspec(dllexport) + #else + #define ALCAPI __declspec(dllimport) + #endif + + typedef struct ALCdevice_struct ALCdevice; + typedef struct ALCcontext_struct ALCcontext; + + #define ALCAPIENTRY __cdecl +#else + #ifdef TARGET_OS_MAC + #if TARGET_OS_MAC + + #pragma export on + #endif + #endif + #define ALCAPI + #define ALCAPIENTRY + +/** ALC boolean type. */ +typedef char ALCboolean; + +/** ALC 8bit signed byte. */ +typedef char ALCbyte; + +/** ALC 8bit unsigned byte. */ +typedef unsigned char ALCubyte; + +/** ALC 16bit signed short integer type. */ +typedef short ALCshort; + +/** ALC 16bit unsigned short integer type. */ +typedef unsigned short ALCushort; + +/** ALC 32bit unsigned integer type. */ +typedef unsigned ALCuint; + +/** ALC 32bit signed integer type. */ +typedef int ALCint; + +/** ALC 32bit floating point type. */ +typedef float ALCfloat; + +/** ALC 64bit double point type. */ +typedef double ALCdouble; + +/** ALC 32bit type. */ +typedef unsigned int ALCsizei; + +/** ALC void type */ +typedef void ALCvoid; + +#endif + +#ifdef _WIN32 + #ifdef _OPENAL32LIB + #define ALAPI __declspec(dllexport) + #else + #define ALAPI __declspec(dllimport) + #endif + #define ALAPIENTRY __cdecl + #define AL_CALLBACK +#else + #ifdef TARGET_OS_MAC + #if TARGET_OS_MAC + #pragma export on + #endif + #endif + #define ALAPI + #define ALAPIENTRY + #define AL_CALLBACK +#endif +#define INITGUID +#define OPENAL + +#ifdef _WIN32 +/* +* EAX 2.0 listener property set {0306A6A8-B224-11d2-99E5-0000E8D8C722} +*/ +/* +const GUID DSPROPSETID_EAX20_ListenerProperties + = { 0x306a6a8, 0xb224, 0x11d2, { 0x99, 0xe5, 0x0, 0x0, 0xe8, 0xd8, 0xc7, 0x22 } }; + +const GUID DSPROPSETID_EAX20_BufferProperties + = { 0x306a6a7, 0xb224, 0x11d2, {0x99, 0xe5, 0x0, 0x0, 0xe8, 0xd8, 0xc7, 0x22 } }; +*/ +#endif +/* +DEFINE_GUID(DSPROPSETID_EAX20_ListenerProperties, + 0x306a6a8, + 0xb224, + 0x11d2, + 0x99, 0xe5, 0x0, 0x0, 0xe8, 0xd8, 0xc7, 0x22); + +DEFINE_GUID(DSPROPSETID_EAX20_BufferProperties, + 0x306a6a7, + 0xb224, + 0x11d2, + 0x99, 0xe5, 0x0, 0x0, 0xe8, 0xd8, 0xc7, 0x22); +*/ +void DeInitializeOpenAL(); + +int InitializeOpenAL(JNIEnv *env, jobjectArray oalPaths); + +//alc +typedef ALCubyte* (ALCAPIENTRY *alcGetStringPROC)(ALCdevice *device,ALCenum param); +typedef ALCvoid (ALCAPIENTRY *alcGetIntegervPROC)(ALCdevice *device,ALCenum param,ALCsizei size,ALCint *data); +typedef ALCdevice* (ALCAPIENTRY *alcOpenDevicePROC)(ALCubyte *deviceName); +typedef ALCvoid (ALCAPIENTRY *alcCloseDevicePROC)(ALCdevice *device); +typedef ALCcontext* (ALCAPIENTRY *alcCreateContextPROC)(ALCdevice *device,ALCint *attrList); +typedef ALCboolean (ALCAPIENTRY *alcMakeContextCurrentPROC)(ALCcontext *context); +typedef ALCvoid (ALCAPIENTRY *alcProcessContextPROC)(ALCcontext *context); +typedef ALCcontext* (ALCAPIENTRY *alcGetCurrentContextPROC)(ALCvoid); +typedef ALCdevice* (ALCAPIENTRY *alcGetContextsDevicePROC)(ALCcontext *context); +typedef ALCvoid (ALCAPIENTRY *alcSuspendContextPROC)(ALCcontext *context); +typedef ALCvoid (ALCAPIENTRY *alcDestroyContextPROC)(ALCcontext *context); +typedef ALCenum (ALCAPIENTRY *alcGetErrorPROC)(ALCdevice *device); +typedef ALCboolean (ALCAPIENTRY *alcIsExtensionPresentPROC)(ALCdevice *device,ALCubyte *extName); +typedef ALCvoid* (ALCAPIENTRY *alcGetProcAddressPROC)(ALCdevice *device,ALCubyte *funcName); +typedef ALCenum (ALCAPIENTRY *alcGetEnumValuePROC)(ALCdevice *device,ALCubyte *enumName); + +//al +typedef ALvoid (ALAPIENTRY *alEnablePROC)( ALenum capability ); +typedef ALvoid (ALAPIENTRY *alDisablePROC)( ALenum capability ); +typedef ALboolean (ALAPIENTRY *alIsEnabledPROC)( ALenum capability ); +typedef ALvoid (ALAPIENTRY *alHintPROC)( ALenum target, ALenum mode ); +typedef ALboolean (ALAPIENTRY *alGetBooleanPROC)( ALenum param ); +typedef ALint (ALAPIENTRY *alGetIntegerPROC)( ALenum param ); +typedef ALfloat (ALAPIENTRY *alGetFloatPROC)( ALenum param ); +typedef ALdouble (ALAPIENTRY *alGetDoublePROC)( ALenum param ); +typedef ALvoid (ALAPIENTRY *alGetBooleanvPROC)( ALenum param, ALboolean* data ); +typedef ALvoid (ALAPIENTRY *alGetIntegervPROC)( ALenum param, ALint* data ); +typedef ALvoid (ALAPIENTRY *alGetFloatvPROC)( ALenum param, ALfloat* data ); +typedef ALvoid (ALAPIENTRY *alGetDoublevPROC)( ALenum param, ALdouble* data ); +typedef ALubyte* (ALAPIENTRY *alGetStringPROC)( ALenum param ); +typedef ALenum (ALAPIENTRY *alGetErrorPROC)( ALvoid ); +typedef ALboolean (ALAPIENTRY *alIsExtensionPresentPROC)( ALubyte* fname ); +typedef ALvoid* (ALAPIENTRY *alGetProcAddressPROC)( ALubyte* fname ); +typedef ALenum (ALAPIENTRY *alGetEnumValuePROC)( ALubyte* ename ); +typedef ALvoid (ALAPIENTRY *alListeneriPROC)( ALenum param, ALint value ); +typedef ALvoid (ALAPIENTRY *alListenerfPROC)( ALenum param, ALfloat value ); +typedef ALvoid (ALAPIENTRY *alListener3fPROC)( ALenum param, ALfloat v1, ALfloat v2, ALfloat v3 ); +typedef ALvoid (ALAPIENTRY *alListenerfvPROC)( ALenum param, ALfloat* values ); +typedef ALvoid (ALAPIENTRY *alGetListeneriPROC)( ALenum param, ALint* value ); +typedef ALvoid (ALAPIENTRY *alGetListenerfPROC)( ALenum param, ALfloat* value ); +typedef ALvoid (ALAPIENTRY *alGetListener3fPROC)( ALenum param, ALfloat* v1, ALfloat* v2, ALfloat* v3 ); +typedef ALvoid (ALAPIENTRY *alGetListenerfvPROC)( ALenum param, ALfloat* values ); +typedef ALvoid (ALAPIENTRY *alGenSourcesPROC)( ALsizei n, ALuint* sources ); +typedef ALvoid (ALAPIENTRY *alDeleteSourcesPROC)( ALsizei n, ALuint* sources ); +typedef ALboolean (ALAPIENTRY *alIsSourcePROC)( ALuint id ); +typedef ALvoid (ALAPIENTRY *alSourceiPROC)( ALuint source, ALenum param, ALint value ); +typedef ALvoid (ALAPIENTRY *alSourcefPROC)( ALuint source, ALenum param, ALfloat value ); +typedef ALvoid (ALAPIENTRY *alSource3fPROC)( ALuint source, ALenum param, ALfloat v1, ALfloat v2, ALfloat v3 ); +typedef ALvoid (ALAPIENTRY *alSourcefvPROC)( ALuint source, ALenum param, ALfloat* values ); +typedef ALvoid (ALAPIENTRY *alGetSourceiPROC)( ALuint source, ALenum param, ALint* value ); +typedef ALvoid (ALAPIENTRY *alGetSourcefPROC)( ALuint source, ALenum param, ALfloat* value ); +typedef ALvoid (ALAPIENTRY *alGetSource3fPROC)( ALuint source, ALenum param, ALfloat* v1, ALfloat* v2, ALfloat* v3 ); +typedef ALvoid (ALAPIENTRY *alGetSourcefvPROC)( ALuint source, ALenum param, ALfloat* values ); +typedef ALvoid (ALAPIENTRY *alSourcePlayvPROC)( ALsizei n, ALuint *sources ); +typedef ALvoid (ALAPIENTRY *alSourcePausevPROC)( ALsizei n, ALuint *sources ); +typedef ALvoid (ALAPIENTRY *alSourceStopvPROC)( ALsizei n, ALuint *sources ); +typedef ALvoid (ALAPIENTRY *alSourceRewindvPROC)(ALsizei n,ALuint *sources); +typedef ALvoid (ALAPIENTRY *alSourcePlayPROC)( ALuint source ); +typedef ALvoid (ALAPIENTRY *alSourcePausePROC)( ALuint source ); +typedef ALvoid (ALAPIENTRY *alSourceStopPROC)( ALuint source ); +typedef ALvoid (ALAPIENTRY *alSourceRewindPROC)( ALuint source ); +typedef ALvoid (ALAPIENTRY *alGenBuffersPROC)( ALsizei n, ALuint* buffers ); +typedef ALvoid (ALAPIENTRY *alDeleteBuffersPROC)( ALsizei n, ALuint* buffers ); +typedef ALboolean (ALAPIENTRY *alIsBufferPROC)( ALuint buffer ); +typedef ALvoid (ALAPIENTRY *alBufferDataPROC)( ALuint buffer, + ALenum format, + ALvoid* data, + ALsizei size, + ALsizei freq ); +typedef ALvoid (ALAPIENTRY *alGetBufferiPROC)( ALuint buffer, ALenum param, ALint* value ); +typedef ALvoid (ALAPIENTRY *alGetBufferfPROC)( ALuint buffer, ALenum param, ALfloat* value ); +typedef ALvoid (ALAPIENTRY *alSourceQueueBuffersPROC)( ALuint source, ALsizei n, ALuint* buffers ); +typedef ALvoid (ALAPIENTRY *alSourceUnqueueBuffersPROC)( ALuint source, ALsizei n, ALuint* buffers ); +typedef ALvoid (ALAPIENTRY *alDistanceModelPROC)( ALenum value ); +typedef ALvoid (ALAPIENTRY *alDopplerFactorPROC)( ALfloat value ); +typedef ALvoid (ALAPIENTRY *alDopplerVelocityPROC)( ALfloat value ); + +extern alcGetStringPROC alcGetString; +extern alcGetIntegervPROC alcGetIntegerv; +extern alcOpenDevicePROC alcOpenDevice; +extern alcCloseDevicePROC alcCloseDevice; +extern alcCreateContextPROC alcCreateContext; +extern alcMakeContextCurrentPROC alcMakeContextCurrent; +extern alcProcessContextPROC alcProcessContext; +extern alcGetCurrentContextPROC alcGetCurrentContext; +extern alcGetContextsDevicePROC alcGetContextsDevice; +extern alcSuspendContextPROC alcSuspendContext; +extern alcDestroyContextPROC alcDestroyContext; +extern alcGetErrorPROC alcGetError; +extern alcIsExtensionPresentPROC alcIsExtensionPresent; +extern alcGetProcAddressPROC alcGetProcAddress; +extern alcGetEnumValuePROC alcGetEnumValue; + +extern alEnablePROC alEnable; +extern alDisablePROC alDisable; +extern alIsEnabledPROC alIsEnabled; +extern alHintPROC alHint; +extern alGetBooleanPROC alGetBoolean; +extern alGetIntegerPROC alGetInteger; +extern alGetFloatPROC alGetFloat; +extern alGetDoublePROC alGetDouble; +extern alGetBooleanvPROC alGetBooleanv; +extern alGetIntegervPROC alGetIntegerv; +extern alGetFloatvPROC alGetFloatv; +extern alGetDoublevPROC alGetDoublev; +extern alGetStringPROC alGetString; +extern alGetErrorPROC alGetError; +extern alIsExtensionPresentPROC alIsExtensionPresent; +extern alGetProcAddressPROC alGetProcAddress; +extern alGetEnumValuePROC alGetEnumValue; +extern alListeneriPROC alListeneri; +extern alListenerfPROC alListenerf; +extern alListener3fPROC alListener3f; +extern alListenerfvPROC alListenerfv; +extern alGetListeneriPROC alGetListeneri; +extern alGetListenerfPROC alGetListenerf; +extern alGetListener3fPROC alGetListener3f; +extern alGetListenerfvPROC alGetListenerfv; +extern alGenSourcesPROC alGenSources; +extern alDeleteSourcesPROC alDeleteSources; +extern alIsSourcePROC alIsSource; +extern alSourceiPROC alSourcei; +extern alSourcefPROC alSourcef; +extern alSource3fPROC alSource3f; +extern alSourcefvPROC alSourcefv; +extern alGetSourceiPROC alGetSourcei; +extern alGetSourcefPROC alGetSourcef; +extern alGetSource3fPROC alGetSource3f; +extern alGetSourcefvPROC alGetSourcefv; +extern alSourcePlayvPROC alSourcePlayv; +extern alSourcePausevPROC alSourcePausev; +extern alSourceStopvPROC alSourceStopv; +extern alSourceRewindvPROC alSourceRewindv; +extern alSourcePlayPROC alSourcePlay; +extern alSourcePausePROC alSourcePause; +extern alSourceStopPROC alSourceStop; +extern alSourceRewindPROC alSourceRewind; +extern alGenBuffersPROC alGenBuffers; +extern alDeleteBuffersPROC alDeleteBuffers; +extern alIsBufferPROC alIsBuffer; +extern alBufferDataPROC alBufferData; +extern alGetBufferiPROC alGetBufferi; +extern alGetBufferfPROC alGetBufferf; +extern alSourceQueueBuffersPROC alSourceQueueBuffers; +extern alSourceUnqueueBuffersPROC alSourceUnqueueBuffers; +extern alDistanceModelPROC alDistanceModel; +extern alDopplerFactorPROC alDopplerFactor; +extern alDopplerVelocityPROC alDopplerVelocity; + +#ifdef _WIN32 +typedef ALenum (*EAXSet)(const GUID*, ALuint, ALuint, ALvoid*, ALuint); +typedef ALenum (*EAXGet)(const GUID*, ALuint, ALuint, ALvoid*, ALuint); + +extern EAXSet eaxSet; +extern EAXGet eaxGet; +#endif + +#ifdef __cplusplus +} +#endif + +#endif |