This commit is contained in:
2011-02-23 09:58:17 +00:00
parent c0dbab44a2
commit 1eaefc5ba4
8 changed files with 49 additions and 57 deletions

28
java/src/pm/Listener.java Normal file
View File

@@ -0,0 +1,28 @@
package pm;
public abstract class Listener implements Runnable {
protected static final int SLEEP = 100;
protected boolean run;
public void start() {
run = true;
new Thread(this).start();
}
public void stop() {
run = false;
}
protected void sleep(int time) {
try {
if (time > 0) {
Thread.sleep(time);
}
} catch (InterruptedException e) {}
}
protected void sleep() {
sleep(SLEEP);
}
}

View File

@@ -42,20 +42,19 @@ public class Main extends TaskListener {
}
public void initialise() throws DeviceInitialiseException {
//add(new JIntellitypeDevice());
add(new JIntellitypeDevice());
//add(new PlayerDevice());
//add(new RumblepadDevice());
//add(new WiimoteDevice());
//add(new GUIDevice());
add(new TextDevice());
add(new LanTextDevice());
//add(new TextDevice());
//add(new LanTextDevice());
for (Device device : deviceList) {
try {
device.initialise();
device.start();
} catch (DeviceInitialiseException e) {
remove(device);
e.printStackTrace();
}
}
@@ -70,7 +69,6 @@ public class Main extends TaskListener {
application.start();
} catch (ApplicationInitialiseException e) {
remove(application);
e.printStackTrace();
}
}
}

View File

@@ -1,5 +1,7 @@
package pm.application.windows;
import pm.Button;
public enum Command {
BROWSER_BACKWARD (1),
BROWSER_FORWARD (2),

View File

@@ -8,8 +8,10 @@ import com.melloware.jintellitype.JIntellitype;
import pm.Device;
import pm.Task;
import pm.application.windows.Command;
import pm.exception.EventException;
import pm.exception.device.DeviceInitialiseException;
import pm.macro.event.Hold;
import pm.macro.event.Press;
import pm.macro.event.Release;
import pm.task.Continuous;
@@ -37,8 +39,11 @@ public class JIntellitypeDevice extends Device implements HotkeyListener, Intell
new Hotkey(Key.NEXT),
new Task(Action.NEXT, Target.MAIN));
add(
new Hotkey(Modifier.CTRL | Modifier.WIN, 'q'),
new Task(Action.PLAY, Target.APPLICATIONS));
new Press(CommandButton.VOLUME_DOWN),
new Task(Action.VOLUME_DOWN, Target.APPLICATIONS));
add(
new Press(CommandButton.VOLUME_UP),
new Task(Action.VOLUME_UP, Target.APPLICATIONS));
add(
new Hotkey(Modifier.CTRL | Modifier.WIN, 'x'),
new Task(Action.EXIT, Target.MAIN));

View File

@@ -3,33 +3,27 @@ package pm.device.text;
import java.io.InputStream;
import java.util.Scanner;
import pm.Listener;
import pm.Task;
import pm.task.TaskManager;
import pm.value.Action;
import pm.value.Target;
public class InputListener implements Runnable {
protected static final int SLEEP = 100;
protected boolean run;
public class InputListener extends Listener {
protected Scanner input;
public InputListener(InputStream inputStream) {
input = new Scanner(inputStream);
}
public void start() {
new Thread(this).start();
}
public void run() {
run = true;
while (running()) {
String textinput = input.next().toUpperCase();
if(textinput != null) {
String string = input.next().toUpperCase();
if(string != null) {
try {
TaskManager.add(
new Task(Action.valueOf(textinput), Target.APPLICATION));
new Task(Action.valueOf(string), Target.APPLICATION));
} catch(IllegalArgumentException e) {}
}
try {
@@ -43,8 +37,4 @@ public class InputListener implements Runnable {
protected boolean running() {
return run && input.hasNext();
}
public void stop() {
run = false;
}
}

View File

@@ -6,11 +6,10 @@ import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import pm.Listener;
import pm.device.text.InputListener;
public class SocketListener implements Runnable {
protected boolean run;
public class SocketListener extends Listener {
protected ServerSocket server;
protected ArrayList<InputListener> inputListenerList;
@@ -19,12 +18,7 @@ public class SocketListener implements Runnable {
inputListenerList = new ArrayList<InputListener>();
}
public void start() {
new Thread(this).start();
}
public void run() {
run = true;
while (run) {
try {
Socket socket = server.accept();

View File

@@ -7,7 +7,6 @@ import org.wiigee.util.Log;
import pm.Button;
import pm.Device;
import pm.Task;
import pm.device.javainput.rumblepad.RumblepadButton;
import pm.device.wiimote.gesture.GestureDevice;
import pm.exception.device.DeviceInitialiseException;
import pm.exception.event.UnknownButtonException;

View File

@@ -3,26 +3,18 @@ package pm.task;
import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue;
import pm.Listener;
import pm.Task;
import pm.value.Action;
public abstract class TaskListener implements Runnable {
protected static final int SLEEP = 100;
public abstract class TaskListener extends Listener implements Runnable {
protected Queue<Task> taskQueue;
protected boolean run;
public TaskListener() {
taskQueue = new ConcurrentLinkedQueue<Task>();
run = false;
}
public void start() {
new Thread(this).start();
}
public final void run() {
run = true;
while (run) {
if (taskQueue.isEmpty()) {
sleep();
@@ -32,26 +24,10 @@ public abstract class TaskListener implements Runnable {
}
}
public void stop() {
run = false;
}
public void add(Task task) {
taskQueue.add(task);
}
protected void sleep(int time) {
try {
if (time > 0) {
Thread.sleep(time);
}
} catch (InterruptedException e) {}
}
protected void sleep() {
sleep(SLEEP);
}
protected void task(Task task) {
System.out.println(this);
Action action = task.getAction();