From 92e931caf64cf24e2b885d2552e64aebcf70a45a Mon Sep 17 00:00:00 2001
From: Sven Gothel
Date: Fri, 1 Feb 2013 11:55:07 +0100
Subject: OpenAL Library Selection (Bug 662): Use String value of new property
'joal.openal.lib'. OSX: Prefer system OpenAL (nou OpenAL-Soft output device
support)
+ * Select preferred OpenAL native library type via system properties,
+ * i.e. System-OpenAL or bundled Soft-OpenAL.
+ * If the preferred choice fails, implementation falls back to the other.
+ *
+ -Djoal.openal.lib=auto Prefer System-OpenAL over bundled Soft-OpenAL for OSX. Prefer bundled Soft-OpenAL over System-OpenAL for all others. This is the default.
+ -Djoal.openal.lib=system Prefer System-OpenAL over bundled Soft-OpenAL for all.
+ -Djoal.openal.lib=soft Prefer bundled Soft-OpenAL over System-OpenAL for all.
+
+ * Note: You may use the 'jnlp.' prefix, allowing using above property names w/ Applets and WebStart,
+ * e.g. 'jnlp.joal.openal.lib=system'.
+ *
---
.../jogamp/openal/ALDynamicLibraryBundleInfo.java | 56 +++++++++++-----------
1 file changed, 28 insertions(+), 28 deletions(-)
(limited to 'src/java/jogamp/openal')
diff --git a/src/java/jogamp/openal/ALDynamicLibraryBundleInfo.java b/src/java/jogamp/openal/ALDynamicLibraryBundleInfo.java
index 55f6ed7..6ba81f0 100644
--- a/src/java/jogamp/openal/ALDynamicLibraryBundleInfo.java
+++ b/src/java/jogamp/openal/ALDynamicLibraryBundleInfo.java
@@ -34,6 +34,7 @@ import com.jogamp.common.os.DynamicLibraryBundleInfo;
import com.jogamp.common.os.Platform;
import com.jogamp.common.util.RunnableExecutor;
import com.jogamp.common.util.cache.TempJarCache;
+import com.jogamp.openal.ALFactory;
import java.security.AccessController;
import java.security.PrivilegedAction;
@@ -78,40 +79,39 @@ public class ALDynamicLibraryBundleInfo implements DynamicLibraryBundleInfo {
public List> getToolLibNames() {
List> libNamesList = new ArrayList>();
- List alLibNames = new ArrayList();
-
- if(Debug.isPropertyDefined("joal.SystemOpenAL", true)) {
- // First test the System OpenAL
+ final List alSystemLibNames = new ArrayList();
+ {
// this is the default AL lib name, according to the spec
- alLibNames.add("libopenal.so.1"); // unix
- alLibNames.add("OpenAL32"); // windows
- alLibNames.add("OpenAL"); // OSX
-
+ alSystemLibNames.add("libopenal.so.1"); // unix
+ alSystemLibNames.add("OpenAL32"); // windows
+ alSystemLibNames.add("OpenAL"); // OSX
+
// try this one as well, if spec fails
- alLibNames.add("libOpenAL.so.1");
- alLibNames.add("libopenal.so");
- alLibNames.add("libOpenAL.so");
-
- // last but not least .. the generic one
+ alSystemLibNames.add("libOpenAL.so.1");
+ alSystemLibNames.add("libopenal.so");
+ alSystemLibNames.add("libOpenAL.so");
+ }
+ final List alSoftLibNames = new ArrayList();
+ {
// These names are in use by the bundled OpenAL-soft
- alLibNames.add("openal");
- alLibNames.add("OpenAL");
+ alSoftLibNames.add("openal");
+ alSoftLibNames.add("OpenAL");
+ }
+
+ final List alLibNames = new ArrayList();
+
+ if( ALFactory.PREFER_SYSTEM_OPENAL ) {
+ // First test the System OpenAL
+ alLibNames.addAll(alSystemLibNames);
+
+ // last but not least .. bundled OpenAL-soft
+ alLibNames.addAll(alSoftLibNames);
} else {
// First test use of the bundled OpenAL-soft
- // the generic one
- alLibNames.add("openal");
- alLibNames.add("OpenAL");
-
+ alLibNames.addAll(alSoftLibNames);
+
// Then try the System OpenAL
- // this is the default AL lib name, according to the spec
- alLibNames.add("libopenal.so.1"); // unix
- alLibNames.add("OpenAL32"); // windows
- alLibNames.add("OpenAL"); // OSX
-
- // try this one as well, if spec fails
- alLibNames.add("libOpenAL.so.1");
- alLibNames.add("libopenal.so");
- alLibNames.add("libOpenAL.so");
+ alLibNames.addAll(alSystemLibNames);
}
// last but not least .. the generic one
--
cgit v1.2.3