diff options
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; |