diff --git a/.classpath b/.classpath index 9454e24..e911fdf 100644 --- a/.classpath +++ b/.classpath @@ -18,7 +18,7 @@ - + diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index 13b3428..6f1d295 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -1,13 +1,13 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=9 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.compliance=9 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.compiler.source=9 diff --git a/src/main/java/com/cemu_UI/application/Main.java b/src/main/java/com/cemu_UI/application/Main.java index 652b049..c27dff4 100644 --- a/src/main/java/com/cemu_UI/application/Main.java +++ b/src/main/java/com/cemu_UI/application/Main.java @@ -141,6 +141,7 @@ public class Main extends Application { mainWindowController.setLanguage("en_US"); mainWindowController.setLastLocalSync(0); mainWindowController.setxPosHelper(0); + mainWindowController.setExecuteCommand(mainWindowController.getCemuPath() + "/Cemu.exe -g "); mainWindowController.saveSettings(); Runtime.getRuntime().exec("java -jar cemu_UI.jar"); //start again (preventing Bugs) System.exit(0); //finishes itself @@ -212,11 +213,10 @@ public class Main extends Application { Optional result2 = alert2.showAndWait(); if (result2.get() == ButtonType.OK) { DirectoryChooser directoryChooser = new DirectoryChooser(); - File selectedDirectory = directoryChooser.showDialog(primaryStage); - mainWindowController.setRomPath(selectedDirectory.getAbsolutePath()); - + File selectedDirectory = directoryChooser.showDialog(primaryStage); + mainWindowController.setRomDirectoryPath(selectedDirectory.getAbsolutePath()); } else { - mainWindowController.setRomPath(null); + mainWindowController.setRomDirectoryPath(null); } } diff --git a/src/main/java/com/cemu_UI/application/MainWindowController.java b/src/main/java/com/cemu_UI/application/MainWindowController.java index 6c44ab8..150a2d0 100644 --- a/src/main/java/com/cemu_UI/application/MainWindowController.java +++ b/src/main/java/com/cemu_UI/application/MainWindowController.java @@ -157,6 +157,9 @@ public class MainWindowController { @FXML private JFXTextField courseSearchTextFiled; + + @FXML + private JFXTextField executeCommandTextFiled; @FXML private TextFlow smmdbTextFlow; @@ -279,8 +282,9 @@ public class MainWindowController { private boolean cloudSync; private String cloudService = ""; // set cloud provider (at the moment only GoogleDrive, Dropbox is planed) private String cemuPath; - private String romPath; + private String romDirectoryPath; private String gameExecutePath; + private String executeCommand; private String color; private String dialogBtnStyle; private String selectedGameTitleID; @@ -399,7 +403,8 @@ public class MainWindowController { } cemuTextField.setText(cemuPath); - romTextField.setText(romPath); + romTextField.setText(romDirectoryPath); + executeCommandTextFiled.setText(getExecuteCommand()); colorPicker.setValue(Color.valueOf(getColor())); fullscreenToggleBtn.setSelected(isFullscreen()); cloudSyncToggleBtn.setSelected(isCloudSync()); @@ -800,6 +805,30 @@ public class MainWindowController { } } }); + + cemuTextField.textProperty().addListener(new ChangeListener() { + @Override + public void changed(ObservableValue observable, String oldValue, String newValue) { + setCemuPath(cemuTextField.getText()); + saveSettings(); + } + }); + + romTextField.textProperty().addListener(new ChangeListener() { + @Override + public void changed(ObservableValue observable, String oldValue, String newValue) { + setRomDirectoryPath(romTextField.getText()); + saveSettings(); + } + }); + + executeCommandTextFiled.textProperty().addListener(new ChangeListener() { + @Override + public void changed(ObservableValue observable, String oldValue, String newValue) { + setExecuteCommand(executeCommandTextFiled.getText()); + saveSettings(); + } + }); LOGGER.info("initializing Actions done!"); } @@ -846,7 +875,7 @@ public class MainWindowController { Thread thread = new Thread(new Runnable() { @Override public void run() { - dbController.loadRomDirectory(getRomPath()); // reload the rom directory + dbController.loadRomDirectory(getRomDirectoryPath()); // reload the rom directory Platform.runLater(() -> { refreshUIData(); // refresh the list of games displayed on screen @@ -938,7 +967,7 @@ public class MainWindowController { if (romDirectory == null) { LOGGER.info("No Directory selected"); } else { - setRomPath(romDirectory.getAbsolutePath()); + setRomDirectoryPath(romDirectory.getAbsolutePath()); saveSettings(); cemuTextField.setText(getCemuPath()); try { @@ -1041,24 +1070,16 @@ public class MainWindowController { } } - @FXML - void cemuTextFieldAction(ActionEvent event) { - setCemuPath(cemuTextField.getText()); - saveSettings(); - } - - @FXML - void romTextFieldAction(ActionEvent event) { - setRomPath(romTextField.getText()); - saveSettings(); - } - @FXML void fullscreenToggleBtnAction(ActionEvent event) { if (fullscreen) { fullscreen = false; + setExecuteCommand(getExecuteCommand().replace("-f -g", "-g")); + executeCommandTextFiled.setText(getExecuteCommand()); } else { fullscreen = true; + setExecuteCommand(getExecuteCommand().replace("-g", "-f -g")); + executeCommandTextFiled.setText(getExecuteCommand()); } saveSettings(); } @@ -1638,7 +1659,8 @@ public class MainWindowController { OutputStream outputStream; //new output-stream try { props.setProperty("cemuPath", getCemuPath()); - props.setProperty("romPath", getRomPath()); + props.setProperty("romPath", getRomDirectoryPath()); + props.setProperty("executeCommand", getExecuteCommand()); props.setProperty("color", getColor()); props.setProperty("language", getLanguage()); props.setProperty("fullscreen", String.valueOf(isFullscreen())); @@ -1690,10 +1712,17 @@ public class MainWindowController { } try { - setRomPath(props.getProperty("romPath")); + setRomDirectoryPath(props.getProperty("romPath")); } catch (Exception e) { LOGGER.error("could not load romPath", e); - setRomPath(""); + setRomDirectoryPath(""); + } + + if (props.getProperty("executeCommand") == null) { + LOGGER.error("could not load executeCommand, setting default instead!"); + setExecuteCommand(getCemuPath() + "\\Cemu.exe -g "); + } else { + setExecuteCommand(props.getProperty("executeCommand")); } try { @@ -1862,14 +1891,22 @@ public class MainWindowController { this.cemuPath = cemuPath; } - public String getRomPath() { - return romPath; + public String getRomDirectoryPath() { + return romDirectoryPath; } - public void setRomPath(String romPath) { - this.romPath = romPath; + public void setRomDirectoryPath(String romDirectoryPath) { + this.romDirectoryPath = romDirectoryPath; } + public String getExecuteCommand() { + return executeCommand; + } + + public void setExecuteCommand(String executeCommand) { + this.executeCommand = executeCommand; + } + public String getColor() { return color; } diff --git a/src/main/java/com/cemu_UI/application/playGame.java b/src/main/java/com/cemu_UI/application/playGame.java index b6afd6b..751c896 100644 --- a/src/main/java/com/cemu_UI/application/playGame.java +++ b/src/main/java/com/cemu_UI/application/playGame.java @@ -57,19 +57,22 @@ public class playGame extends Thread{ }); startTime = System.currentTimeMillis(); try{ - if(mainWindowController.isFullscreen()){ - if(System.getProperty("os.name").equals("Linux")){ - executeComand = "wine "+mainWindowController.getCemuPath()+"/Cemu.exe -f -g \""+mainWindowController.getGameExecutePath()+"\""; - } else { - executeComand = mainWindowController.getCemuPath()+"\\Cemu.exe -f -g \""+mainWindowController.getGameExecutePath()+"\""; - } - }else{ - if(System.getProperty("os.name").equals("Linux")){ - executeComand = "wine "+mainWindowController.getCemuPath()+"/Cemu.exe -g \""+mainWindowController.getGameExecutePath()+"\""; - } else { - executeComand = mainWindowController.getCemuPath()+"\\Cemu.exe -g \""+mainWindowController.getGameExecutePath()+"\""; - } - } + executeComand = mainWindowController.getExecuteCommand() + " \"" + mainWindowController.getGameExecutePath() + "\""; + +// if(mainWindowController.isFullscreen()){ +// if(System.getProperty("os.name").equals("Linux")){ +// executeComand = "wine "+mainWindowController.getCemuPath()+"/Cemu.exe -f -g \""+mainWindowController.getGameExecutePath()+"\""; +// } else { +// executeComand = mainWindowController.getCemuPath()+"\\Cemu.exe -f -g \""+mainWindowController.getGameExecutePath()+"\""; +// } +// }else{ +// if(System.getProperty("os.name").equals("Linux")){ +// executeComand = "wine "+mainWindowController.getCemuPath()+"/Cemu.exe -g \""+mainWindowController.getGameExecutePath()+"\""; +// } else { +// executeComand = mainWindowController.getCemuPath() + "\\Cemu.exe -g " + "\"" + mainWindowController.getGameExecutePath() + "\""; +// } +// } + LOGGER.info(executeComand); p = Runtime.getRuntime().exec(executeComand); diff --git a/src/main/java/com/cemu_UI/controller/DBController.java b/src/main/java/com/cemu_UI/controller/DBController.java index 394b7ca..52e9c9e 100644 --- a/src/main/java/com/cemu_UI/controller/DBController.java +++ b/src/main/java/com/cemu_UI/controller/DBController.java @@ -149,7 +149,7 @@ public class DBController { LOGGER.error("error while loading ROMs from ROM database, local_roms table", e); } if (entries.size() == 0) { - loadRomDirectory(mainWindowController.getRomPath()); + loadRomDirectory(mainWindowController.getRomDirectoryPath()); } } diff --git a/src/main/resources/fxml/MainWindow.fxml b/src/main/resources/fxml/MainWindow.fxml index d67e830..b0c0bdb 100644 --- a/src/main/resources/fxml/MainWindow.fxml +++ b/src/main/resources/fxml/MainWindow.fxml @@ -18,7 +18,7 @@ - + @@ -91,12 +91,12 @@ - + - +