* pakket value gemaakt voor algemene enums
* LanTextClient in eigen pakket client gezet * TextDevice en LanTextDevice nog generieker gemaakt: - standaard thread model toegepast met start en stop methoden - threads verplaatst buiten devices: -- devices zouden run methode uit de task listener overriden -- run methode uit tasklistener final gemaakt
This commit is contained in:
@@ -11,15 +11,16 @@ import pm.application.windows.wmp.WMPApplication;
|
||||
import pm.device.gui.GUIDevice;
|
||||
import pm.device.javainput.rumblepad.RumblepadDevice;
|
||||
import pm.device.jintellitype.JIntellitypeDevice;
|
||||
import pm.device.lantextinput.LanTextDevice;
|
||||
import pm.device.player.PlayerDevice;
|
||||
import pm.device.textinput.TextDevice;
|
||||
import pm.device.text.TextDevice;
|
||||
import pm.device.text.lan.LanTextDevice;
|
||||
import pm.device.wiimote.WiimoteDevice;
|
||||
import pm.exception.application.ApplicationExitException;
|
||||
import pm.exception.device.DeviceExitException;
|
||||
import pm.exception.device.DeviceInitialiseException;
|
||||
import pm.task.TaskManager;
|
||||
import pm.task.TaskListener;
|
||||
import pm.value.Action;
|
||||
|
||||
public class Main extends TaskListener {
|
||||
//protected String[] deviceClassArray;
|
||||
@@ -45,7 +46,7 @@ public class Main extends TaskListener {
|
||||
//add(new RumblepadDevice());
|
||||
//add(new WiimoteDevice());
|
||||
//add(new GUIDevice());
|
||||
//add(new TextDevice());
|
||||
add(new TextDevice());
|
||||
add(new LanTextDevice());
|
||||
for (Device device : deviceList) {
|
||||
try {
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
package pm;
|
||||
|
||||
import pm.value.Action;
|
||||
import pm.value.Target;
|
||||
|
||||
public class Task {
|
||||
protected Action action;
|
||||
protected Target target;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package pm.application.example;
|
||||
|
||||
import pm.Action;
|
||||
import pm.Application;
|
||||
import pm.value.Action;
|
||||
|
||||
public class ExampleApplication extends Application {
|
||||
protected void action(Action action) {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package pm.application.itunes;
|
||||
|
||||
import pm.Action;
|
||||
import pm.Application;
|
||||
import pm.exception.application.ApplicationExitException;
|
||||
import pm.value.Action;
|
||||
|
||||
import com.dt.iTunesController.ITCOMDisabledReason;
|
||||
import com.dt.iTunesController.ITTrack;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package pm.application.winamp;
|
||||
|
||||
import pm.Action;
|
||||
import pm.Application;
|
||||
import pm.exception.application.ApplicationExitException;
|
||||
import pm.exception.application.ApplicationInitialiseException;
|
||||
import pm.value.Action;
|
||||
|
||||
import com.qotsa.exception.InvalidHandle;
|
||||
import com.qotsa.exception.InvalidParameter;
|
||||
|
||||
@@ -9,6 +9,8 @@ import pm.exception.application.windows.SendCommandException;
|
||||
import pm.exception.application.windows.SendKeyException;
|
||||
import pm.util.Native;
|
||||
import pm.util.Windows;
|
||||
import pm.value.Key;
|
||||
import pm.value.Type;
|
||||
|
||||
import com.eaio.nativecall.IntCall;
|
||||
import com.eaio.nativecall.NativeCall;
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
package pm.application.windows.gomplayer;
|
||||
|
||||
import pm.Action;
|
||||
import pm.application.windows.Command;
|
||||
import pm.application.windows.Type;
|
||||
import pm.application.windows.Key;
|
||||
import pm.application.windows.WindowsApplication;
|
||||
import pm.exception.application.windows.SendCommandException;
|
||||
import pm.exception.application.windows.SendKeyException;
|
||||
import pm.value.Action;
|
||||
import pm.value.Key;
|
||||
import pm.value.Type;
|
||||
|
||||
public class GomPlayerApplication extends WindowsApplication {
|
||||
protected final static String PROGRAM = "GOM.exe";
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package pm.application.windows.wmp;
|
||||
|
||||
import pm.Action;
|
||||
import pm.application.windows.Command;
|
||||
import pm.application.windows.WindowsApplication;
|
||||
import pm.exception.application.ApplicationInitialiseException;
|
||||
import pm.exception.application.windows.SendCommandException;
|
||||
import pm.value.Action;
|
||||
|
||||
public class WMPApplication extends WindowsApplication {
|
||||
protected final static String PROGRAM = "wmplayer.exe";
|
||||
|
||||
@@ -1,19 +1,18 @@
|
||||
package pm.device.lantextinput;
|
||||
package pm.client;
|
||||
|
||||
import java.io.PrintStream;
|
||||
import java.net.Socket;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class LanTextClient {
|
||||
static final String HOST = "127.0.0.1"; //localhost
|
||||
static final String HOST = "127.0.0.1"; // localhost
|
||||
static final int PORT = 1234;
|
||||
|
||||
protected boolean run;
|
||||
protected Socket socket;
|
||||
protected Scanner input;
|
||||
protected PrintStream output;
|
||||
|
||||
LanTextClient(){
|
||||
public LanTextClient(String host, int port) {
|
||||
try {
|
||||
socket = new Socket(HOST, PORT);
|
||||
input = new Scanner(System.in);
|
||||
@@ -22,13 +21,17 @@ public class LanTextClient {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
protected void start(){
|
||||
while(run){
|
||||
|
||||
public LanTextClient() {
|
||||
this(HOST, PORT);
|
||||
}
|
||||
|
||||
protected void start() {
|
||||
while (true) {
|
||||
output.println(input.nextLine());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static void main(String[] argv) {
|
||||
new LanTextClient().start();
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
package pm.device.example;
|
||||
|
||||
import pm.Action;
|
||||
import pm.Device;
|
||||
import pm.Target;
|
||||
import pm.value.Action;
|
||||
import pm.value.Target;
|
||||
|
||||
public class ExampleDevice extends Device {
|
||||
public void initialise() {
|
||||
|
||||
@@ -5,10 +5,10 @@ import java.awt.event.ActionListener;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFrame;
|
||||
import pm.Action;
|
||||
import pm.Target;
|
||||
import pm.Task;
|
||||
import pm.task.TaskManager;
|
||||
import pm.value.Action;
|
||||
import pm.value.Target;
|
||||
|
||||
import layout.TableLayout;
|
||||
import layout.TableLayoutConstraints;
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
package pm.device.javainput.extreme3d;
|
||||
|
||||
import pm.Action;
|
||||
import pm.Button;
|
||||
import pm.Macro;
|
||||
import pm.Target;
|
||||
import pm.Task;
|
||||
import pm.device.javainput.DirectionButton;
|
||||
import pm.device.javainput.JavaInputDevice;
|
||||
@@ -14,6 +12,8 @@ import pm.exception.event.UnknownDirectionException;
|
||||
import pm.macro.event.Hold;
|
||||
import pm.macro.event.Press;
|
||||
import pm.macro.event.Release;
|
||||
import pm.value.Action;
|
||||
import pm.value.Target;
|
||||
import de.hardcode.jxinput.event.JXInputButtonEvent;
|
||||
import de.hardcode.jxinput.event.JXInputDirectionalEvent;
|
||||
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
package pm.device.javainput.rumblepad;
|
||||
|
||||
import pm.Action;
|
||||
import pm.Button;
|
||||
import pm.Target;
|
||||
import pm.Task;
|
||||
import pm.device.javainput.DirectionButton;
|
||||
import pm.device.javainput.JavaInputDevice;
|
||||
@@ -13,6 +11,8 @@ import pm.macro.event.Hold;
|
||||
import pm.macro.event.Press;
|
||||
import pm.task.Continuous;
|
||||
import pm.task.Dynamic;
|
||||
import pm.value.Action;
|
||||
import pm.value.Target;
|
||||
import de.hardcode.jxinput.event.JXInputButtonEvent;
|
||||
import de.hardcode.jxinput.event.JXInputDirectionalEvent;
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@ import java.util.ArrayList;
|
||||
|
||||
import com.melloware.jintellitype.JIntellitype;
|
||||
|
||||
import pm.application.windows.Key;
|
||||
import pm.macro.event.Press;
|
||||
import pm.value.Key;
|
||||
|
||||
public class Hotkey extends Press {
|
||||
protected static ArrayList<Hotkey> hotkeyList;
|
||||
|
||||
@@ -6,16 +6,16 @@ import com.melloware.jintellitype.HotkeyListener;
|
||||
import com.melloware.jintellitype.IntellitypeListener;
|
||||
import com.melloware.jintellitype.JIntellitype;
|
||||
|
||||
import pm.Action;
|
||||
import pm.Device;
|
||||
import pm.Target;
|
||||
import pm.Task;
|
||||
import pm.application.windows.Key;
|
||||
import pm.exception.EventException;
|
||||
import pm.exception.device.DeviceInitialiseException;
|
||||
import pm.macro.event.Press;
|
||||
import pm.macro.event.Release;
|
||||
import pm.task.Continuous;
|
||||
import pm.value.Action;
|
||||
import pm.value.Key;
|
||||
import pm.value.Target;
|
||||
|
||||
public class JIntellitypeDevice extends Device implements HotkeyListener, IntellitypeListener {
|
||||
protected ArrayList<Hotkey> hotkeyList;
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
package pm.device.lantextinput;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.ServerSocket;
|
||||
import pm.Device;
|
||||
|
||||
public class LanTextDevice extends Device implements Runnable {
|
||||
static final int PORT = 1234;
|
||||
|
||||
protected ServerSocket socket;
|
||||
|
||||
public void initialise() {
|
||||
try {
|
||||
socket = new ServerSocket(PORT);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
new Thread(this).start();
|
||||
}
|
||||
|
||||
public void run() {
|
||||
while(true){
|
||||
try {
|
||||
new LanTextListener(socket.accept());
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
package pm.device.lantextinput;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.Socket;
|
||||
import java.util.Scanner;
|
||||
|
||||
import pm.device.textinput.TextDevice;
|
||||
|
||||
public class LanTextListener extends TextDevice {
|
||||
protected Socket socket;
|
||||
|
||||
public LanTextListener(Socket socket) {
|
||||
this.socket = socket;
|
||||
initialise();
|
||||
}
|
||||
|
||||
public void initialise() {
|
||||
try {
|
||||
input = new Scanner(socket.getInputStream());
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
run = true;
|
||||
new Thread(this).start();
|
||||
}
|
||||
|
||||
protected boolean running() {
|
||||
return run && socket.isConnected() && input.hasNext();
|
||||
}
|
||||
|
||||
public void exit() {
|
||||
run = false;
|
||||
try {
|
||||
socket.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,21 +1,24 @@
|
||||
package pm.device.textinput;
|
||||
package pm.device.text;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.Scanner;
|
||||
|
||||
import pm.Action;
|
||||
import pm.Device;
|
||||
import pm.Target;
|
||||
import pm.Task;
|
||||
import pm.task.TaskManager;
|
||||
import pm.value.Action;
|
||||
import pm.value.Target;
|
||||
|
||||
public class TextDevice extends Device implements Runnable {
|
||||
static final int SLEEP = 100;
|
||||
|
||||
public class InputListener implements Runnable {
|
||||
protected static final int SLEEP = 100;
|
||||
|
||||
protected boolean run;
|
||||
protected Scanner input;
|
||||
|
||||
public void initialise() {
|
||||
input = new Scanner(System.in);
|
||||
public InputListener(InputStream inputStream) {
|
||||
input = new Scanner(inputStream);
|
||||
}
|
||||
|
||||
public void start() {
|
||||
new Thread(this).start();
|
||||
}
|
||||
|
||||
@@ -36,8 +39,12 @@ public class TextDevice extends Device implements Runnable {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected boolean running() {
|
||||
return run && input.hasNext();
|
||||
}
|
||||
|
||||
public void stop() {
|
||||
run = false;
|
||||
}
|
||||
}
|
||||
19
java/src/pm/device/text/TextDevice.java
Normal file
19
java/src/pm/device/text/TextDevice.java
Normal file
@@ -0,0 +1,19 @@
|
||||
package pm.device.text;
|
||||
|
||||
import pm.Device;
|
||||
|
||||
public class TextDevice extends Device implements Runnable {
|
||||
InputListener inputListener;
|
||||
|
||||
public TextDevice() {
|
||||
inputListener = new InputListener(System.in);
|
||||
}
|
||||
|
||||
public void initialise() {
|
||||
inputListener.start();
|
||||
}
|
||||
|
||||
public void exit() {
|
||||
inputListener.stop();
|
||||
}
|
||||
}
|
||||
27
java/src/pm/device/text/lan/LanTextDevice.java
Normal file
27
java/src/pm/device/text/lan/LanTextDevice.java
Normal file
@@ -0,0 +1,27 @@
|
||||
package pm.device.text.lan;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.ServerSocket;
|
||||
import pm.Device;
|
||||
import pm.exception.device.DeviceInitialiseException;
|
||||
|
||||
public class LanTextDevice extends Device {
|
||||
static final int PORT = 1234;
|
||||
|
||||
protected ServerSocket socket;
|
||||
protected SocketListener socketListener;
|
||||
|
||||
public void initialise() throws DeviceInitialiseException {
|
||||
try {
|
||||
socket = new ServerSocket(PORT);
|
||||
socketListener = new SocketListener(socket);
|
||||
socketListener.start();
|
||||
} catch (IOException e) {
|
||||
throw new DeviceInitialiseException();
|
||||
}
|
||||
}
|
||||
|
||||
public void exit() {
|
||||
socketListener.stop();
|
||||
}
|
||||
}
|
||||
47
java/src/pm/device/text/lan/SocketListener.java
Normal file
47
java/src/pm/device/text/lan/SocketListener.java
Normal file
@@ -0,0 +1,47 @@
|
||||
package pm.device.text.lan;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.ServerSocket;
|
||||
import java.net.Socket;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import pm.device.text.InputListener;
|
||||
|
||||
public class SocketListener implements Runnable {
|
||||
protected boolean run;
|
||||
|
||||
protected ServerSocket server;
|
||||
protected ArrayList<InputListener> inputListenerList;
|
||||
|
||||
public SocketListener(ServerSocket server) {
|
||||
this.server = server;
|
||||
inputListenerList = new ArrayList<InputListener>();
|
||||
}
|
||||
|
||||
public void start() {
|
||||
new Thread(this).start();
|
||||
}
|
||||
|
||||
public void run() {
|
||||
run = true;
|
||||
while (run) {
|
||||
try {
|
||||
Socket socket = server.accept();
|
||||
InputStream inputStream = socket.getInputStream();
|
||||
InputListener inputListener = new InputListener(inputStream);
|
||||
inputListenerList.add(inputListener);
|
||||
inputListener.start();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void stop() {
|
||||
run = false;
|
||||
for (InputListener inputListener : inputListenerList) {
|
||||
inputListener.stop();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,10 +4,8 @@ import org.wiigee.event.GestureEvent;
|
||||
import org.wiigee.event.GestureListener;
|
||||
import org.wiigee.util.Log;
|
||||
|
||||
import pm.Action;
|
||||
import pm.Button;
|
||||
import pm.Device;
|
||||
import pm.Target;
|
||||
import pm.Task;
|
||||
import pm.device.javainput.rumblepad.RumblepadButton;
|
||||
import pm.device.wiimote.gesture.GestureDevice;
|
||||
@@ -18,6 +16,8 @@ import pm.macro.event.Press;
|
||||
import pm.macro.event.Release;
|
||||
import pm.task.Continuous;
|
||||
import pm.task.Dynamic;
|
||||
import pm.value.Action;
|
||||
import pm.value.Target;
|
||||
|
||||
import wiiusej.Wiimote;
|
||||
import wiiusej.values.Acceleration;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package pm.task;
|
||||
|
||||
import pm.Action;
|
||||
import pm.Target;
|
||||
import pm.Task;
|
||||
import pm.value.Action;
|
||||
import pm.value.Target;
|
||||
|
||||
public class Continuous extends Task {
|
||||
protected static final int SLEEP = 0;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package pm.task;
|
||||
|
||||
import pm.Action;
|
||||
import pm.Target;
|
||||
import pm.value.Action;
|
||||
import pm.value.Target;
|
||||
|
||||
public class Dynamic extends Continuous {
|
||||
protected static final int RATE = 10;
|
||||
|
||||
@@ -3,8 +3,8 @@ package pm.task;
|
||||
import java.util.Queue;
|
||||
import java.util.concurrent.ConcurrentLinkedQueue;
|
||||
|
||||
import pm.Action;
|
||||
import pm.Task;
|
||||
import pm.value.Action;
|
||||
|
||||
public abstract class TaskListener implements Runnable {
|
||||
protected static final int SLEEP = 100;
|
||||
@@ -21,7 +21,7 @@ public abstract class TaskListener implements Runnable {
|
||||
new Thread(this).start();
|
||||
}
|
||||
|
||||
public void run() {
|
||||
public final void run() {
|
||||
run = true;
|
||||
while (run) {
|
||||
if (taskQueue.isEmpty()) {
|
||||
|
||||
@@ -5,9 +5,9 @@ import java.util.ArrayList;
|
||||
import pm.Application;
|
||||
import pm.Device;
|
||||
import pm.Main;
|
||||
import pm.Target;
|
||||
import pm.Task;
|
||||
import pm.application.ApplicationCycle;
|
||||
import pm.value.Target;
|
||||
|
||||
public class TaskManager {
|
||||
protected static ArrayList<TaskListener> taskListenerList;
|
||||
|
||||
@@ -9,29 +9,35 @@ exeptions en foutmeldingen nakijken/afhandelen/loggen
|
||||
|
||||
initialises en exits controleren op succes. tussendoor afgesloten apps en devs herkennen en restarten? op runtime nieuwe applicaties of devices toevoegen of sluiten.
|
||||
|
||||
feedback systeem implementeren, rumble voor zowel wiimote als rumblepad
|
||||
|
||||
nummerinfo weergeven, waar? via feedback?
|
||||
|
||||
javadoc maken, class diagram opstellen enz.....
|
||||
|
||||
meer applicaties implementeren, zoals VLC, WMP, Youtube? (interface naar flash?)
|
||||
|
||||
logo ontwerpen
|
||||
|
||||
client maken die remote devices kan beheren en lokaal acties kan uitvoeren
|
||||
|
||||
mogelijkheid tot webstart onderzoeken
|
||||
|
||||
alle listeners in gezamelijk pakket plaatsen?
|
||||
|
||||
algemene listener parent class / interface maken? die zou standaard thread functies implementeren / vereisen: start, run, stop
|
||||
|
||||
IN PROGRESS
|
||||
-------------
|
||||
naamgeving en indeling classes/packages controleren
|
||||
+TaskGatherererer hernoemt naar TaskManager
|
||||
+value package waar algemene (gedeelde) enums in komen
|
||||
|
||||
exporteren naar uitvoerbare jar file
|
||||
+Eclipse kan exporteren, maar bij uitvoeren gebeurd er niets. Moet er een status scherm komen? (Een swing console bijvoorbeeld)
|
||||
|
||||
logo ontwerpen
|
||||
+logo is af, favicon maken?
|
||||
|
||||
feedback systeem implementeren, rumble voor zowel wiimote als rumblepad
|
||||
+feedback voor rumblepad komt er niet, te veel werk en gebruikte api lijkt niet eenvoudig aanpasbaar
|
||||
|
||||
DONE
|
||||
-------------
|
||||
lantextdevice generiek maken met normale textdevice
|
||||
@@ -1,4 +1,4 @@
|
||||
package pm;
|
||||
package pm.value;
|
||||
|
||||
public enum Action {
|
||||
EXIT,
|
||||
@@ -1,4 +1,4 @@
|
||||
package pm.application.windows;
|
||||
package pm.value;
|
||||
|
||||
public enum Key {
|
||||
/*
|
||||
@@ -1,4 +1,4 @@
|
||||
package pm;
|
||||
package pm.value;
|
||||
|
||||
public enum Target {
|
||||
ALL, MAIN, DEVICES, APPLICATIONS, APPLICATION;
|
||||
@@ -1,4 +1,4 @@
|
||||
package pm.application.windows;
|
||||
package pm.value;
|
||||
|
||||
public enum Type {
|
||||
UP (0x0101), // WM_KEYUP
|
||||
Reference in New Issue
Block a user