Browse Source

added ability to edit launch command, WIP

WARNING THIS IS NOT TESTED
pull/18/head
Jannik 5 years ago
parent
commit
f331fb57a4
  1. 2
      .classpath
  2. 6
      .settings/org.eclipse.jdt.core.prefs
  3. 8
      src/main/java/com/cemu_UI/application/Main.java
  4. 83
      src/main/java/com/cemu_UI/application/MainWindowController.java
  5. 29
      src/main/java/com/cemu_UI/application/playGame.java
  6. 2
      src/main/java/com/cemu_UI/controller/DBController.java
  7. 19
      src/main/resources/fxml/MainWindow.fxml

2
.classpath

@ -18,7 +18,7 @@
</attributes>
</classpathentry>
<classpathentry kind="src" path="src/test/main"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-9">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>

6
.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

8
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<ButtonType> 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);
}
}

83
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<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
setCemuPath(cemuTextField.getText());
saveSettings();
}
});
romTextField.textProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
setRomDirectoryPath(romTextField.getText());
saveSettings();
}
});
executeCommandTextFiled.textProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> 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;
}

29
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);

2
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());
}
}

19
src/main/resources/fxml/MainWindow.fxml

@ -18,7 +18,7 @@
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.TextFlow?>
<AnchorPane fx:id="mainAnchorPane" prefHeight="600.0" prefWidth="904.0" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.cemu_UI.application.MainWindowController">
<AnchorPane fx:id="mainAnchorPane" prefHeight="600.0" prefWidth="904.0" xmlns="http://javafx.com/javafx/9" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.cemu_UI.application.MainWindowController">
<children>
<ScrollPane fx:id="mainScrollPane" fitToWidth="true" layoutY="38.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="38.0">
<content>
@ -91,12 +91,12 @@
<Insets left="-14.0" />
</padding>
</VBox>
<VBox spacing="10.0">
<VBox spacing="7.0">
<children>
<Label fx:id="cemuDirectoryLbl" text="Cemu Directory" />
<HBox spacing="10.0">
<children>
<JFXTextField fx:id="cemuTextField" maxWidth="305.0" minWidth="305.0" onAction="#cemuTextFieldAction" prefHeight="32.0" prefWidth="305.0" promptText="cemu directory" />
<JFXTextField fx:id="cemuTextField" maxWidth="305.0" minWidth="305.0" prefHeight="32.0" prefWidth="305.0" promptText="cemu directory" />
<JFXButton fx:id="cemuTFBtn" onAction="#cemuTFBtnAction" prefHeight="32.0" text="choose directory" />
</children>
</HBox>
@ -105,12 +105,12 @@
<Insets right="5.0" />
</padding>
</VBox>
<VBox spacing="10.0">
<VBox spacing="7.0">
<children>
<Label fx:id="romDirectoryLbl" text="Rom Directory" />
<HBox spacing="10.0">
<children>
<JFXTextField fx:id="romTextField" maxWidth="305.0" minWidth="305.0" onAction="#romTextFieldAction" prefHeight="32.0" prefWidth="305.0" promptText="rom directory" />
<JFXTextField fx:id="romTextField" maxWidth="305.0" minWidth="305.0" prefHeight="32.0" prefWidth="305.0" promptText="rom directory" />
<JFXButton fx:id="romTFBtn" onAction="#romTFBtnAction" prefHeight="32.0" text="choose directory" />
</children>
</HBox>
@ -170,6 +170,15 @@
<VBox.margin>
<Insets top="-10.0" />
</VBox.margin></JFXToggleButton>
<VBox prefHeight="200.0" prefWidth="100.0" spacing="7.0">
<children>
<Label fx:id="cemuDirectoryLbl1" text="execute command" />
<JFXTextField fx:id="executeCommandTextFiled" maxWidth="430.0" minWidth="430.0" prefHeight="25.0" prefWidth="430.0" promptText="execute command" />
</children>
<padding>
<Insets right="5.0" />
</padding>
</VBox>
<Label fx:id="licensesLbl" text="Licenses" />
</children>
<padding>

Loading…
Cancel
Save

Du besuchst diese Seite mit einem veralteten IPv4-Internetzugang. Möglicherweise treten in Zukunft Probleme mit der Erreichbarkeit und Performance auf. Bitte frage deinen Internetanbieter oder Netzwerkadministrator nach IPv6-Unterstützung.
You are visiting this site with an outdated IPv4 internet access. You may experience problems with accessibility and performance in the future. Please ask your ISP or network administrator for IPv6 support.
Weitere Infos | More Information
Klicke zum schließen | Click to close