From e93393ef8a96b215e8038514175dd0033f321c77 Mon Sep 17 00:00:00 2001 From: Brian Matzon Date: Sun, 19 Sep 2004 11:17:28 +0000 Subject: [PATCH] native loading modified to be in line with oal --- src/java/org/lwjgl/fmod3/FMOD.java | 22 +++++++----- src/java/org/lwjgl/openal/AL.java | 9 +++-- src/native/common/fmod3/extfmod3.c | 4 +-- src/native/common/fmod3/extfmod3.h | 2 +- .../common/fmod3/org_lwjgl_fmod3_FMOD.c | 36 ++++++++++++++++--- 5 files changed, 54 insertions(+), 19 deletions(-) diff --git a/src/java/org/lwjgl/fmod3/FMOD.java b/src/java/org/lwjgl/fmod3/FMOD.java index 619578f6..66412663 100644 --- a/src/java/org/lwjgl/fmod3/FMOD.java +++ b/src/java/org/lwjgl/fmod3/FMOD.java @@ -191,16 +191,16 @@ public class FMOD { private static String JNI_LIBRARY_NAME = "lwjgl-fmod3"; /** The native library name on win32 */ - private static String FMOD_WIN32_LIBRARY_NAME = "fmod.dll"; + private static String FMOD_WIN32_LIBRARY_NAME = "fmod"; /** The native library name on win32 */ - private static String FMOD_LINUX_LIBRARY_NAME = "libfmod.so.0"; + private static String FMOD_LINUX_LIBRARY_NAME = "fmod"; /** The native library name on win32 */ - private static String FMOD_OSX_LIBRARY_NAME = "fmod_cfm.shlb"; + private static String FMOD_OSX_LIBRARY_NAME = "fmod"; /** Version of FMOD */ - public static final String VERSION = "0.9a"; + public static final String VERSION = "0.92"; static { initialize(); @@ -275,7 +275,8 @@ public class FMOD { dllName = FMOD_LINUX_LIBRARY_NAME; } - String jwsPath = getPathFromJWS(dllName.substring(0, dllName.indexOf("."))); + String jwsPath = getPathFromJWS(dllName); + Sys.log("getPathFromJWS: Paths found: " + jwsPath); if (jwsPath != null) { libpath += seperator + jwsPath.substring(0, jwsPath.lastIndexOf(File.separator)); @@ -287,7 +288,11 @@ public class FMOD { //build paths for (int i = 0; i < paths.length - 1; i++) { - paths[i] = st.nextToken() + File.separator + dllName; + paths[i] = st.nextToken() + File.separator; + } + + for(int i=0 ; iGetArrayLength(env, paths); int i; + jstring path; + const char *path_str; + char *lib_str; + for(i=0;iGetObjectArrayElement(env, paths, i); - char *path_str = (char *) (*env)->GetStringUTFChars(env, path, NULL); - printfDebug("Trying to load fmod_instance from %s\n", path_str); - fmod_create(env, path_str); + path = (jstring) (*env)->GetObjectArrayElement(env, paths, i); + path_str = (*env)->GetStringUTFChars(env, path, NULL); +#ifdef _WIN32 + lib_str = concatenate(path_str, "fmod.dll"); +#endif +#ifdef _X11 + lib_str = concatenate(path_str, "libfmod.so"); +#endif +#ifdef _AGL + lib_str = concatenate(path_str, "fmod_cfm.shlb"); +#endif + printfDebug("Testing '%s'\n", lib_str); + fmod_create(env, lib_str); + free(lib_str); (*env)->ReleaseStringUTFChars(env, path, path_str); if(fmod_instance != NULL) {