diff --git a/jni/gamepad_jni/buildwin.sh b/jni/gamepad_jni/buildwin.sh index 1e5b9e6..9ac9177 100644 --- a/jni/gamepad_jni/buildwin.sh +++ b/jni/gamepad_jni/buildwin.sh @@ -1,4 +1,3 @@ rm gamepad_jni.dll gamepad_jni64.dll -/C/MinGW/bin/gcc -shared -I"/C/Program Files (x86)/Java/jdk1.7.0_45/include" -I"/C/Program Files (x86)/Java/jdk1.7.0_45/include/win32" *.c -L./win32 -lstem_gamepad -lxinput1_3 -Wl,--no-undefined -Wl,--kill-at -o gamepad_jni.dll -/C/MinGW-w64/bin/gcc -shared -I"/C/Program Files (x86)/Java/jdk1.7.0_45/include" -I"/C/Program Files (x86)/Java/jdk1.7.0_45/include/win32" *.c -L./win64 -lstem_gamepad -lxinput1_3 -Wl,--no-undefined -Wl,--kill-at -o gamepad_jni64.dll - +/C/MinGW/bin/gcc -m32 -shared -Wall -I"/C/Program Files (x86)/Java/jdk1.7.0_45/include" -I"/C/Program Files (x86)/Java/jdk1.7.0_45/include/win32" *.c -L./win32 -lstem_gamepad -lxinput9_1_0 -Wl,--no-undefined -Wl,--kill-at -o gamepad_jni.dll +/C/MinGW-w64/bin/gcc -m64 -shared -Wall -I"/C/Program Files (x86)/Java/jdk1.7.0_45/include" -I"/C/Program Files (x86)/Java/jdk1.7.0_45/include/win32" *.c -L./win64 -lstem_gamepad -lxinput9_1_0 -Wl,--no-undefined -Wl,--kill-at -o gamepad_jni64.dll diff --git a/jni/gamepad_jni/win32/libxinput9_1_0.a b/jni/gamepad_jni/win32/libxinput9_1_0.a new file mode 100644 index 0000000..d4bc693 Binary files /dev/null and b/jni/gamepad_jni/win32/libxinput9_1_0.a differ diff --git a/jni/gamepad_jni/win64/libxinput9_1_0.a b/jni/gamepad_jni/win64/libxinput9_1_0.a new file mode 100644 index 0000000..36923c5 Binary files /dev/null and b/jni/gamepad_jni/win64/libxinput9_1_0.a differ diff --git a/libs/win32/gamepad_jni.dll b/libs/win32/gamepad_jni.dll index 728c0e5..fe93fbb 100644 Binary files a/libs/win32/gamepad_jni.dll and b/libs/win32/gamepad_jni.dll differ diff --git a/libs/win64/gamepad_jni.dll b/libs/win64/gamepad_jni.dll index 360856e..9286756 100644 Binary files a/libs/win64/gamepad_jni.dll and b/libs/win64/gamepad_jni.dll differ diff --git a/src/com/limelight/Limelight.java b/src/com/limelight/Limelight.java index 86464a2..34f51fd 100644 --- a/src/com/limelight/Limelight.java +++ b/src/com/limelight/Limelight.java @@ -1,5 +1,9 @@ package com.limelight; +import java.io.File; +import java.io.IOException; +import java.io.PrintStream; + import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.UIManager; @@ -107,6 +111,15 @@ public class Limelight implements NvConnectionListener { * @param args unused. */ public static void main(String args[]) { + // Redirect logging to a file if we're running from a JAR + if (LibraryHelper.isRunningFromJar()) { + try { + System.setErr(new PrintStream(new File("error.log"))); + System.setOut(new PrintStream(new File("output.log"))); + } catch (IOException e) { + } + } + //fix the menu bar if we are running in osx if (System.getProperty("os.name").contains("Mac OS X")) { // take the menu bar off the jframe diff --git a/src/com/limelight/binding/LibraryHelper.java b/src/com/limelight/binding/LibraryHelper.java index 0eb7062..d6601ec 100644 --- a/src/com/limelight/binding/LibraryHelper.java +++ b/src/com/limelight/binding/LibraryHelper.java @@ -15,7 +15,8 @@ public class LibraryHelper { private static boolean librariesExtracted = false; static { - needsDependencyExtraction = System.getProperty("os.name", "").contains("Windows"); + // Windows and OS X need this, but we might as well do it for everybody + needsDependencyExtraction = true; libraryExtractionFolder = System.getProperty("java.io.tmpdir", "."); // FFMPEG libraries @@ -94,4 +95,9 @@ public class LibraryHelper { } } } + + public static boolean isRunningFromJar() { + String classPath = LibraryHelper.class.getResource("LibraryHelper.class").toString(); + return classPath.startsWith("jar:"); + } } diff --git a/src/com/limelight/gui/MainFrame.java b/src/com/limelight/gui/MainFrame.java index 61896ba..e505410 100644 --- a/src/com/limelight/gui/MainFrame.java +++ b/src/com/limelight/gui/MainFrame.java @@ -6,8 +6,6 @@ import java.awt.Dimension; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; import java.io.IOException; import java.net.InetAddress; import java.net.SocketException; @@ -28,7 +26,6 @@ import org.xmlpull.v1.XmlPullParserException; import com.limelight.Limelight; import com.limelight.binding.PlatformBinding; -import com.limelight.input.gamepad.NativeGamepad; import com.limelight.nvstream.NvConnection; import com.limelight.nvstream.http.NvHTTP; import com.limelight.settings.PreferencesManager; @@ -59,16 +56,6 @@ public class MainFrame { public void build() { limeFrame = new JFrame("Limelight"); limeFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - limeFrame.addWindowListener(new WindowAdapter() { - @Override - public void windowClosing(WindowEvent e) { - super.windowClosing(e); - if (NativeGamepad.isRunning()) { - NativeGamepad.stop(); - } - - } - }); Container mainPane = limeFrame.getContentPane(); mainPane.setLayout(new BorderLayout());