fix: actually set Listener & Buffer GUID's

This commit is contained in:
Brian Matzon 2002-08-30 21:45:48 +00:00
parent 9ecf595bd4
commit 7a2acd569d
4 changed files with 35 additions and 6 deletions

View File

@ -45,12 +45,6 @@
*/
public abstract class BaseEAX {
/** GUID for buffer */
public static int BUFFER_GUID;
/** GUID for listener */
public static int LISTENER_GUID;
/** Has the EAX object been created? */
protected static boolean created;

View File

@ -41,6 +41,12 @@
*/
public class CoreEAX extends BaseEAX implements BaseEAXConstants {
/** GUID for buffer */
public static int BUFFER_GUID;
/** GUID for listener */
public static int LISTENER_GUID;
/** Creates a new instance of CoreEAX */
public CoreEAX() {
}
@ -50,6 +56,7 @@ public class CoreEAX extends BaseEAX implements BaseEAXConstants {
*/
protected void init() {
determineAvailableExtensions();
setGUID();
}
/**
@ -57,6 +64,11 @@ public class CoreEAX extends BaseEAX implements BaseEAXConstants {
*/
protected native void determineAvailableExtensions();
/**
* Sets the GUID's for the buffer and listener objects
*/
protected native void setGUID();
/**
* Retrieves an EAX Value
*

View File

@ -50,6 +50,14 @@ extern "C" {
JNIEXPORT void JNICALL Java_org_lwjgl_openal_CoreEAX_determineAvailableExtensions
(JNIEnv *, jobject);
/*
* Class: org_lwjgl_openal_CoreEAX
* Method: setGUID
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_openal_CoreEAX_setGUID
(JNIEnv *, jobject);
/*
* Class: org_lwjgl_openal_CoreEAX
* Method: eaxGet

View File

@ -104,6 +104,21 @@ JNIEXPORT void JNICALL Java_org_lwjgl_openal_CoreEAX_determineAvailableExtension
#endif
}
JNIEXPORT void JNICALL Java_org_lwjgl_openal_CoreEAX_setGUID (JNIEnv *env, jobject obj) {
#ifdef _WIN32
//get class/fields
jclass eax_class = env->FindClass("org/lwjgl/openal/CoreEAX");
jfieldID eaxBuffer_field = env->GetStaticFieldID(eax_class, "BUFFER_GUID", "I");
jfieldID eaxListener_field = env->GetStaticFieldID(eax_class, "LISTENER_GUID", "I");
//set fields
env->SetStaticIntField(eax_class, eaxBuffer_field, (jint) &DSPROPSETID_EAX20_BufferProperties);
env->SetStaticIntField(eax_class, eaxListener_field, (jint) &DSPROPSETID_EAX20_ListenerProperties);
#else
ThrowException(env, "EAX extensions not supported");
#endif
}
/*
* This function retrieves an EAX value.
*