aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--coreAPI/src/java/net/java/games/input/DefaultControllerEnvironment.java21
-rwxr-xr-xplugins/OSX/src/java/net/java/games/input/OSXEnvironmentPlugin.java16
-rw-r--r--plugins/linux/src/java/net/java/games/input/LinuxEnvironmentPlugin.java8
-rw-r--r--plugins/windows/src/java/net/java/games/input/DirectInputEnvironmentPlugin.java8
-rw-r--r--plugins/windows/src/java/net/java/games/input/RawInputEnvironmentPlugin.java8
5 files changed, 25 insertions, 36 deletions
diff --git a/coreAPI/src/java/net/java/games/input/DefaultControllerEnvironment.java b/coreAPI/src/java/net/java/games/input/DefaultControllerEnvironment.java
index da1305e..9507bd2 100644
--- a/coreAPI/src/java/net/java/games/input/DefaultControllerEnvironment.java
+++ b/coreAPI/src/java/net/java/games/input/DefaultControllerEnvironment.java
@@ -92,6 +92,27 @@ class DefaultControllerEnvironment extends ControllerEnvironment {
private PluginClassLoader pluginLoader = new PluginClassLoader();
private Collection loadedPlugins = new ArrayList();
+
+ /**
+ * Static utility method for loading native libraries.
+ * It will try to load from either the path given by
+ * the net.java.games.input.librarypath property
+ * or through System.loadLibrary().
+ *
+ */
+ static void loadLibrary(final String lib_name) {
+ AccessController.doPrivileged(
+ new PrivilegedAction() {
+ public final Object run() {
+ String lib_path = System.getProperty("net.java.games.input.librarypath");
+ if (lib_path != null)
+ System.load(lib_path + File.separator + System.mapLibraryName(lib_name));
+ else
+ System.loadLibrary(lib_name);
+ return null;
+ }
+ });
+ }
/**
* Public no-arg constructor.
diff --git a/plugins/OSX/src/java/net/java/games/input/OSXEnvironmentPlugin.java b/plugins/OSX/src/java/net/java/games/input/OSXEnvironmentPlugin.java
index 68e42b0..b2aec33 100755
--- a/plugins/OSX/src/java/net/java/games/input/OSXEnvironmentPlugin.java
+++ b/plugins/OSX/src/java/net/java/games/input/OSXEnvironmentPlugin.java
@@ -56,21 +56,7 @@ import java.security.PrivilegedAction;
*/
public final class OSXEnvironmentPlugin extends ControllerEnvironment implements Plugin {
static {
- AccessController.doPrivileged(new PrivilegedAction() {
- public Object run() {
- if (isMacOSXEqualsOrBetterThan(10, 4)) {
- System.loadLibrary("jinput-osx");
- } else {
- // If we're not on 10.4 or later, try to load the legacy library first
- try {
- System.loadLibrary("jinput-osx-legacy");
- } catch (UnsatisfiedLinkError e) {
- System.loadLibrary("jinput-osx");
- }
- }
- return null;
- }
- });
+ DefaultControllerEnvironment.loadLibrary("jinput-osx");
}
private final static boolean isMacOSXEqualsOrBetterThan(int major_required, int minor_required) {
diff --git a/plugins/linux/src/java/net/java/games/input/LinuxEnvironmentPlugin.java b/plugins/linux/src/java/net/java/games/input/LinuxEnvironmentPlugin.java
index d6afb96..7ad3439 100644
--- a/plugins/linux/src/java/net/java/games/input/LinuxEnvironmentPlugin.java
+++ b/plugins/linux/src/java/net/java/games/input/LinuxEnvironmentPlugin.java
@@ -44,13 +44,7 @@ public final class LinuxEnvironmentPlugin extends ControllerEnvironment implemen
private final static LinuxDeviceThread device_thread = new LinuxDeviceThread();
static {
- AccessController.doPrivileged(
- new PrivilegedAction() {
- public final Object run() {
- System.loadLibrary("jinput-linux");
- return null;
- }
- });
+ DefaultControllerEnvironment.loadLibrary("jinput-linux");
}
public final static Object execute(LinuxDeviceTask task) throws IOException {
diff --git a/plugins/windows/src/java/net/java/games/input/DirectInputEnvironmentPlugin.java b/plugins/windows/src/java/net/java/games/input/DirectInputEnvironmentPlugin.java
index e09286a..1fcacb7 100644
--- a/plugins/windows/src/java/net/java/games/input/DirectInputEnvironmentPlugin.java
+++ b/plugins/windows/src/java/net/java/games/input/DirectInputEnvironmentPlugin.java
@@ -53,13 +53,7 @@ import net.java.games.util.plugins.Plugin;
*/
public final class DirectInputEnvironmentPlugin extends ControllerEnvironment implements Plugin {
static {
- AccessController.doPrivileged(
- new PrivilegedAction() {
- public final Object run() {
- System.loadLibrary("jinput-dx8");
- return null;
- }
- });
+ DefaultControllerEnvironment.loadLibrary("jinput-dx8");
}
private final Controller[] controllers;
diff --git a/plugins/windows/src/java/net/java/games/input/RawInputEnvironmentPlugin.java b/plugins/windows/src/java/net/java/games/input/RawInputEnvironmentPlugin.java
index 304ff13..d8185e2 100644
--- a/plugins/windows/src/java/net/java/games/input/RawInputEnvironmentPlugin.java
+++ b/plugins/windows/src/java/net/java/games/input/RawInputEnvironmentPlugin.java
@@ -53,13 +53,7 @@ import net.java.games.util.plugins.Plugin;
*/
public final class RawInputEnvironmentPlugin extends ControllerEnvironment implements Plugin {
static {
- AccessController.doPrivileged(
- new PrivilegedAction() {
- public final Object run() {
- System.loadLibrary("jinput-raw");
- return null;
- }
- });
+ DefaultControllerEnvironment.loadLibrary("jinput-raw");
}
private final Controller[] controllers;