This commit is contained in:
@@ -6,13 +6,13 @@ import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import pm.application.ApplicationCycle;
|
||||
import pm.application.cmd.windows.gomplayer.GomPlayerApplication;
|
||||
import pm.application.cmd.windows.wmp.WMPApplication;
|
||||
import pm.application.example.ExampleApplication;
|
||||
import pm.application.itunes.iTunesApplication;
|
||||
import pm.application.mpc.MPCApplication;
|
||||
import pm.application.vlc.VLCApplication;
|
||||
import pm.application.winamp.WinampApplication;
|
||||
import pm.application.windows.gomplayer.GomPlayerApplication;
|
||||
import pm.application.windows.wmp.WMPApplication;
|
||||
import pm.device.gui.GUIDevice;
|
||||
import pm.device.javainput.extreme3d.Extreme3DDevice;
|
||||
import pm.device.javainput.rumblepad.RumblepadDevice;
|
||||
@@ -58,15 +58,15 @@ public class Main extends EventListener {
|
||||
//add(new GUIDevice());
|
||||
//add(new TextDevice());
|
||||
//add(new LanTextDevice());
|
||||
add(new Extreme3DDevice());
|
||||
//add(new Extreme3DDevice());
|
||||
startDevices();
|
||||
|
||||
//add(new ExampleApplication());
|
||||
add(new WMPApplication());
|
||||
//add(new GomPlayerApplication());
|
||||
//add(new WMPApplication());
|
||||
add(new GomPlayerApplication());
|
||||
//add(new WinampApplication());
|
||||
//add(new iTunesApplication());
|
||||
//add(new VLCApplication());
|
||||
add(new VLCApplication());
|
||||
//add(new MPCApplication());
|
||||
startApplications();
|
||||
}
|
||||
|
||||
41
java/src/pm/application/cmd/CMDApplication.java
Normal file
41
java/src/pm/application/cmd/CMDApplication.java
Normal file
@@ -0,0 +1,41 @@
|
||||
package pm.application.cmd;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import pm.Application;
|
||||
import pm.exception.application.ApplicationExitException;
|
||||
import pm.exception.application.ApplicationInitialiseException;
|
||||
import pm.util.Native;
|
||||
|
||||
public class CMDApplication extends Application {
|
||||
protected final static String REGISTRY = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths";
|
||||
|
||||
protected String program;
|
||||
protected String title;
|
||||
protected Process process;
|
||||
|
||||
public CMDApplication(String program, String title) {
|
||||
this.program = program;
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public void initialise() throws ApplicationInitialiseException {
|
||||
String key = String.format("%s\\%s", REGISTRY, program);
|
||||
String path = Native.getValue(key);
|
||||
try {
|
||||
String command = path.startsWith("\"") ? path : String.format("\"%s\"", path);
|
||||
command = Native.replaceVariables(command);
|
||||
process = Runtime.getRuntime().exec(command);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
throw new ApplicationInitialiseException();
|
||||
}
|
||||
}
|
||||
|
||||
public void exit() throws ApplicationExitException {
|
||||
if (process != null) {
|
||||
process.destroy();
|
||||
}
|
||||
super.exit();
|
||||
}
|
||||
}
|
||||
@@ -1,33 +1,24 @@
|
||||
package pm.application.windows;
|
||||
package pm.application.cmd.windows;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
|
||||
import pm.Application;
|
||||
import pm.application.cmd.CMDApplication;
|
||||
import pm.exception.application.ApplicationExitException;
|
||||
import pm.exception.application.ApplicationInitialiseException;
|
||||
import pm.util.Native;
|
||||
import pm.util.Windows;
|
||||
import pm.value.Command;
|
||||
import pm.value.Key;
|
||||
import pm.value.Type;
|
||||
|
||||
abstract public class WindowsApplication extends Application {
|
||||
abstract public class WindowsApplication extends CMDApplication {
|
||||
protected final static int TERMINATE_SLEEP = 500;
|
||||
protected final static int START_SLEEP = 500;
|
||||
|
||||
protected final static String REGISTRY = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths";
|
||||
|
||||
protected String program;
|
||||
protected String title;
|
||||
protected String name;
|
||||
|
||||
protected Process process;
|
||||
protected int handle;
|
||||
|
||||
public WindowsApplication(String program, String title, String name) {
|
||||
this.program = program;
|
||||
this.title = title;
|
||||
super(program, title);
|
||||
this.name = name;
|
||||
handle = -1;
|
||||
}
|
||||
@@ -35,32 +26,15 @@ abstract public class WindowsApplication extends Application {
|
||||
public void initialise() throws ApplicationInitialiseException {
|
||||
handle = Windows.findWindow(name, null);
|
||||
if (handle < 1) {
|
||||
String key = String.format("%s\\%s", REGISTRY, program);
|
||||
String path = Native.getValue(key);
|
||||
System.out.println("PATH=" + path);
|
||||
try {
|
||||
String command = path.startsWith("\"") ? path : String.format("\"%s\"", path);
|
||||
System.out.println("COMMAND=" + command);
|
||||
command = Native.replaceVariables(command);
|
||||
System.out.println("COMMAND=" + command);
|
||||
process = Runtime.getRuntime().exec(command);
|
||||
sleep(START_SLEEP);
|
||||
handle = Windows.findWindow(name, null);
|
||||
System.out.println(handle);
|
||||
} catch (IOException e) {e.printStackTrace();}
|
||||
super.initialise();
|
||||
sleep(START_SLEEP);
|
||||
handle = Windows.findWindow(name, null);
|
||||
}
|
||||
if (handle < 1) {
|
||||
throw new ApplicationInitialiseException();
|
||||
}
|
||||
}
|
||||
|
||||
public void exit() throws ApplicationExitException {
|
||||
if (process != null) {
|
||||
process.destroy();
|
||||
}
|
||||
super.exit();
|
||||
}
|
||||
|
||||
|
||||
protected void command(Command command) {
|
||||
Windows.sendMessage(handle, Windows.WM_APPCOMMAND, handle, command.getCode() << 16);
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package pm.application.windows.gomplayer;
|
||||
package pm.application.cmd.windows.gomplayer;
|
||||
|
||||
import pm.application.windows.WindowsApplication;
|
||||
import pm.application.cmd.windows.WindowsApplication;
|
||||
import pm.value.Action;
|
||||
|
||||
public class GomPlayerApplication extends WindowsApplication {
|
||||
@@ -1,6 +1,6 @@
|
||||
package pm.application.windows.wmp;
|
||||
package pm.application.cmd.windows.wmp;
|
||||
|
||||
import pm.application.windows.WindowsApplication;
|
||||
import pm.application.cmd.windows.WindowsApplication;
|
||||
import pm.value.Action;
|
||||
import pm.value.Command;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package pm.application.mpc;
|
||||
|
||||
import pm.application.windows.WindowsApplication;
|
||||
import pm.application.cmd.windows.WindowsApplication;
|
||||
import pm.value.Action;
|
||||
|
||||
public class MPCApplication extends WindowsApplication {
|
||||
|
||||
@@ -1,21 +1,57 @@
|
||||
package pm.application.vlc;
|
||||
|
||||
import pm.Application;
|
||||
import pm.application.windows.WindowsApplication;
|
||||
import java.io.PrintStream;
|
||||
import java.net.Socket;
|
||||
import java.util.Scanner;
|
||||
|
||||
import pm.application.cmd.CMDApplication;
|
||||
import pm.exception.application.ApplicationInitialiseException;
|
||||
import pm.value.Action;
|
||||
|
||||
public class VLCApplication extends WindowsApplication {
|
||||
public class VLCApplication extends CMDApplication {
|
||||
protected final static String PROGRAM = "vlc.exe";
|
||||
protected final static String TITLE = "VLC media player";
|
||||
protected final static String NAME = "CabinetWClass";
|
||||
|
||||
protected static final String HOST = "127.0.0.1"; // localhost
|
||||
protected static final int PORT = 8080;
|
||||
protected Socket socket;
|
||||
Scanner input;
|
||||
PrintStream output;
|
||||
Scanner feedback;
|
||||
|
||||
public VLCApplication() {
|
||||
super(PROGRAM, TITLE, NAME);
|
||||
super(PROGRAM, TITLE);
|
||||
}
|
||||
|
||||
public void initialise() throws ApplicationInitialiseException {
|
||||
super.initialise();
|
||||
connect();
|
||||
test();
|
||||
}
|
||||
|
||||
public void connect() {
|
||||
System.out.println("Connecting to VLC");
|
||||
try {
|
||||
socket = new Socket(HOST, PORT);
|
||||
input = new Scanner(System.in);
|
||||
output = new PrintStream(socket.getOutputStream());
|
||||
feedback = new Scanner(socket.getInputStream());
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
System.out.println("Connection established");
|
||||
}
|
||||
|
||||
public void test() {
|
||||
output.println("GET /requests/status.xml?command=volume&val=-20 HTTP/1.1\r\n");
|
||||
while (feedback.hasNext()) {
|
||||
String message = feedback.next();
|
||||
System.out.printf("%s", message);
|
||||
}
|
||||
}
|
||||
|
||||
public void action(Action action) {
|
||||
System.out.println("VLCApplication: " + action);
|
||||
System.out.println(handle);
|
||||
System.out.println("VLCApplication: " + action);/*
|
||||
switch (action) {
|
||||
case PLAY:
|
||||
command(18808);
|
||||
@@ -47,6 +83,6 @@ public class VLCApplication extends WindowsApplication {
|
||||
case REPEAT:
|
||||
command(18843);
|
||||
break;
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.melloware.jintellitype.JIntellitype;
|
||||
import pm.Button;
|
||||
import pm.exception.button.UnknownButtonException;
|
||||
|
||||
public enum CommandButton implements Button {
|
||||
public enum CommandButton implements Button {
|
||||
BROWSER_BACKWARD (JIntellitype.APPCOMMAND_BROWSER_BACKWARD),
|
||||
BROWSER_FORWARD (JIntellitype.APPCOMMAND_BROWSER_FORWARD),
|
||||
BROWSER_REFRESH (JIntellitype.APPCOMMAND_BROWSER_REFRESH),
|
||||
|
||||
Reference in New Issue
Block a user