From f08389fdd2e78a863faa2c2ed28cd2de6800bf03 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Mon, 24 Mar 2003 11:56:05 +0000 Subject: [PATCH] Fixed Brian's bugs --- src/java/org/lwjgl/openal/BaseAL.java | 58 +++++++++++----------- src/java/org/lwjgl/test/openal/ALTest.java | 4 ++ src/native/common/extal.cpp | 30 +++++------ src/native/common/org_lwjgl_openal_ALC.cpp | 2 +- 4 files changed, 46 insertions(+), 48 deletions(-) diff --git a/src/java/org/lwjgl/openal/BaseAL.java b/src/java/org/lwjgl/openal/BaseAL.java index 2b1259bb..e057a207 100644 --- a/src/java/org/lwjgl/openal/BaseAL.java +++ b/src/java/org/lwjgl/openal/BaseAL.java @@ -74,38 +74,36 @@ public abstract class BaseAL { */ public void create() throws Exception { if (created) { - return; - } - - - // need to pass path of possible locations of OAL to native side - String libpath = System.getProperty("java.library.path"); - String seperator = System.getProperty("path.separator"); - String libname; - - // libname is hardcoded atm - this will change in a near future... - libname = (System.getProperty("os.name").toLowerCase().indexOf("windows") == -1) - ? "libopenal.so" - : "OpenAL32.dll"; - - StringTokenizer st = new StringTokenizer(libpath, seperator); - - //create needed string array - String[] oalPaths = new String[st.countTokens()+1]; - - //build paths - for(int i=0;iGetObjectArrayElement(oalPaths, i); + const char *path_str = env->GetStringUTFChars(path, NULL); #ifdef _DEBUG - printf("Testing '%s'\n", env->GetStringUTFChars(path, NULL)); + printf("Testing '%s'\n", path_str); #endif - handleOAL = LoadLibrary(env->GetStringUTFChars(path, NULL)); - if (handleOAL != NULL) { -#ifdef _DEBUG - printf("Found OpenAL at '%s'\n", env->GetStringUTFChars(path, NULL)); -#endif - break; - } - } +#ifdef _WIN32 + handleOAL = LoadLibrary(path_str); #endif #ifdef _X11 - for(int i=0;iGetObjectArrayElement(oalPaths, i); - handleOAL = dlopen(env->GetStringUTFChars(path, NULL), RTLD_LAZY); + handleOAL = dlopen(path_str, RTLD_LAZY); +#endif if (handleOAL != NULL) { +#ifdef _DEBUG + printf("Found OpenAL at '%s'\n", path_str); +#endif break; } - } -#endif + env->ReleaseStringUTFChars(path, path_str); + } } /** @@ -199,10 +195,10 @@ void LoadOpenAL(JNIEnv *env, jobjectArray oalPaths) { */ void UnLoadOpenAL() { #ifdef _WIN32 - //FreeLibrary(handleOAL); + FreeLibrary(handleOAL); #endif #ifdef _X11 - dlclose(handleOAL); + dlclose(handleOAL); #endif } diff --git a/src/native/common/org_lwjgl_openal_ALC.cpp b/src/native/common/org_lwjgl_openal_ALC.cpp index 6125dbbc..7e900850 100644 --- a/src/native/common/org_lwjgl_openal_ALC.cpp +++ b/src/native/common/org_lwjgl_openal_ALC.cpp @@ -387,4 +387,4 @@ JNIEXPORT jint JNICALL Java_org_lwjgl_openal_ALC_getEnumValue (JNIEnv *env, jobj CHECK_ALC_ERROR return result; -} \ No newline at end of file +}