Merge pull request #2 from ErdbeerbaerLP/master

Some bug fixes
This commit is contained in:
Maschell 2019-04-12 12:58:53 +02:00 committed by GitHub
commit 6aba6610d9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 103 additions and 22 deletions

View File

@ -18,5 +18,5 @@ mvn package
```
# Used libraries
- [lombok](https://projectlombok.org/)
- [lombok](https://projectlombok.org/) ([Install to IDE](https://projectlombok.org/setup/overview) too!)
- [commons-cli](https://commons.apache.org/proper/commons-cli/)

View File

@ -22,9 +22,11 @@
package de.mas.wiiu.streaming;
import java.awt.GraphicsEnvironment;
import java.net.BindException;
import java.net.SocketException;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
@ -39,27 +41,69 @@ import de.mas.wiiu.streaming.gui.StreamWindow;
public class Main {
public static void main(String[] args) throws Exception {
CommandLineParser parser = new DefaultParser();
if(GraphicsEnvironment.isHeadless()) {
System.out.println("This program does not support running in a headless environment!");
System.exit(2);
}else {
String ip = null;
if(args.length != 0) {
CommandLineParser parser = new DefaultParser();
Options options = new Options();
options.addOption("ip", "ip", true, "IP address of your Wii U Console.");
Options options = new Options();
options.addOption("ip", "ip", true, "IP address of your Wii U Console.");
CommandLine line = parser.parse(options, args);
String ip = null;
CommandLine line = parser.parse(options, args, true);
if (line.hasOption("ip")) {
ip = line.getOptionValue("ip");
} else {
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("streamingTool", options);
ip = JOptionPane.showInputDialog(null, "Please enter the local IP address of your Wii U", "Wii U streaming client", JOptionPane.PLAIN_MESSAGE);
}
try {
new Main(ip);
} catch (BindException e) {
JOptionPane.showMessageDialog(null, "Can't bind socket. The client is probably already running.", e.getClass().getName(),
JOptionPane.WARNING_MESSAGE);
System.exit(-1);
if (line.hasOption("ip")) {
ip = line.getOptionValue("ip");
}else {
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("streamingTool", options);
System.exit(2);
}
} else{
//Create a JFrame to show the icon in the taskbar
final JFrame frame = new JFrame("Wii U Streaming Client - Enter IP...");
frame.setUndecorated( true );
frame.setVisible( true );
frame.setLocationRelativeTo( null );
//Display the IP Dialog
ip = JOptionPane.showInputDialog(frame, "Please enter the local IP address of your Wii U", "Wii U streaming client", JOptionPane.PLAIN_MESSAGE);
//Check if user clicked "Cancel"
if(ip == null) {
System.out.println("Cancelled. Exiting program");
frame.dispose();
System.exit(0);
}
//Close the JFrame again
frame.dispose();
}
try {
new Main(ip);
} catch (BindException e) {
//Create a JFrame to show the icon in the taskbar
final JFrame frame = new JFrame("Wii U Streaming Client - "+e.getClass().getName());
frame.setUndecorated( true );
frame.setVisible( true );
frame.setLocationRelativeTo( null );
//Display the Message
JOptionPane.showMessageDialog(frame, "Can't bind socket. The client is probably already running.", e.getClass().getName(),
JOptionPane.WARNING_MESSAGE);
//Close the JFrame again
frame.dispose();
System.exit(-1);
}
}
}

View File

@ -21,18 +21,55 @@
*******************************************************************************/
package de.mas.wiiu.streaming.gui;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.WindowConstants;
public class StreamWindow {
private final ImagePanel image = new ImagePanel(1280, 720);
private final Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
private final ImagePanel image = new ImagePanel(screenSize.width-15, screenSize.height-100);
public StreamWindow(IImageProvider imageProvider) {
JFrame editorFrame = new JFrame("Stream");
JFrame editorFrame = new JFrame("Wii U Streaming Client");
editorFrame.setMaximumSize(screenSize);
editorFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
imageProvider.setOnImageChange((bi) -> image.setImage(bi));
editorFrame.add(image);
editorFrame.getContentPane().add(image);
JMenuBar menuBar = new JMenuBar();
editorFrame.getContentPane().add(menuBar, BorderLayout.NORTH);
JMenu mnSettings = new JMenu("Settings");
menuBar.add(mnSettings);
JMenuItem mntmNewMenuItem = new JMenuItem("Config (Not implemented!)");
mntmNewMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//TODO Add program config
}
});
JMenuItem mntmExit = new JMenuItem("Exit");
mntmExit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
mntmNewMenuItem.setEnabled(false);
mnSettings.add(mntmNewMenuItem);
mnSettings.add(mntmExit);
editorFrame.pack();
editorFrame.setLocationRelativeTo(null);