This commit is contained in:
2011-02-25 15:47:09 +00:00
parent ad25a129f8
commit 0cc4a73611
20 changed files with 96 additions and 91 deletions

View File

@@ -1,2 +0,0 @@
javah -classpath bin wiiusej.WiiUseApi
pause

View File

@@ -1,11 +1,11 @@
package pm; package pm;
import pm.event.EventListener;
import pm.event.EventManager;
import pm.exception.application.ApplicationExitException; import pm.exception.application.ApplicationExitException;
import pm.exception.application.ApplicationInitialiseException; import pm.exception.application.ApplicationInitialiseException;
import pm.task.TaskManager;
import pm.task.TaskListener;
public abstract class Application extends TaskListener { public abstract class Application extends EventListener {
public Application() { public Application() {
super(); super();
} }

View File

@@ -1,6 +1,9 @@
package pm; package pm;
import pm.event.Task; import pm.event.Task;
import pm.event.EventListener;
import pm.event.task.Continuous;
import pm.event.task.Stopper;
import pm.exception.device.DeviceExitException; import pm.exception.device.DeviceExitException;
import pm.exception.device.DeviceInitialiseException; import pm.exception.device.DeviceInitialiseException;
import pm.macro.Sequence; import pm.macro.Sequence;
@@ -9,11 +12,8 @@ import pm.macro.State;
import pm.macro.state.Hold; import pm.macro.state.Hold;
import pm.macro.state.Press; import pm.macro.state.Press;
import pm.macro.state.Release; import pm.macro.state.Release;
import pm.task.Continuous;
import pm.task.Stopper;
import pm.task.TaskListener;
public abstract class Device extends TaskListener { public abstract class Device extends EventListener {
protected SequenceListener sequenceListener; protected SequenceListener sequenceListener;
public Device() { public Device() {

View File

@@ -1,13 +1,22 @@
package pm; package pm;
public abstract class Listener implements Runnable { public abstract class Listener implements Runnable {
protected static final boolean THREAD = true;
protected static final int SLEEP = 100; protected static final int SLEEP = 100;
protected boolean run; protected boolean run;
public void start() { public void start(boolean thread) {
run = true; run = true;
if (thread) {
new Thread(this).start(); new Thread(this).start();
} else {
run();
}
}
public void start() {
start(THREAD);
} }
public void stop() { public void stop() {

View File

@@ -2,8 +2,7 @@ package pm;
import java.util.ArrayList; import java.util.ArrayList;
import pm.exception.MacroException; import pm.exception.macro.StateOrderException;
import pm.exception.state.StateOrderException;
import pm.macro.Sequence; import pm.macro.Sequence;
import pm.macro.State; import pm.macro.State;
import pm.macro.state.Hold; import pm.macro.state.Hold;

View File

@@ -15,15 +15,15 @@ import pm.device.player.PlayerDevice;
import pm.device.text.TextDevice; import pm.device.text.TextDevice;
import pm.device.text.lan.LanTextDevice; import pm.device.text.lan.LanTextDevice;
import pm.device.wiimote.WiimoteDevice; import pm.device.wiimote.WiimoteDevice;
import pm.event.EventListener;
import pm.event.EventManager;
import pm.exception.application.ApplicationExitException; import pm.exception.application.ApplicationExitException;
import pm.exception.application.ApplicationInitialiseException; import pm.exception.application.ApplicationInitialiseException;
import pm.exception.device.DeviceExitException; import pm.exception.device.DeviceExitException;
import pm.exception.device.DeviceInitialiseException; import pm.exception.device.DeviceInitialiseException;
import pm.task.TaskManager;
import pm.task.TaskListener;
import pm.value.Action; import pm.value.Action;
public class Main extends TaskListener { public class Main extends EventListener {
//protected String[] deviceClassArray; //protected String[] deviceClassArray;
protected ApplicationCycle applicationCycle; protected ApplicationCycle applicationCycle;
protected ArrayList<Device> deviceList; protected ArrayList<Device> deviceList;
@@ -37,8 +37,8 @@ public class Main extends TaskListener {
"pm.device.wiimote.WiimoteDevice"};*/ "pm.device.wiimote.WiimoteDevice"};*/
applicationCycle = new ApplicationCycle(); applicationCycle = new ApplicationCycle();
deviceList = new ArrayList<Device>(); deviceList = new ArrayList<Device>();
TaskManager.initialise(applicationCycle); EventManager.initialise(applicationCycle);
TaskManager.add(this); EventManager.add(this);
} }
public void initialise() throws DeviceInitialiseException { public void initialise() throws DeviceInitialiseException {
@@ -133,22 +133,22 @@ public class Main extends TaskListener {
/* Add / remove methods */ /* Add / remove methods */
protected void add(Application application) { protected void add(Application application) {
TaskManager.add(application); EventManager.add(application);
applicationCycle.add(application); applicationCycle.add(application);
} }
protected void remove(Application application) { protected void remove(Application application) {
TaskManager.remove(application); EventManager.remove(application);
applicationCycle.remove(application); applicationCycle.remove(application);
} }
protected void add(Device device) { protected void add(Device device) {
TaskManager.add(device); EventManager.add(device);
deviceList.add(device); deviceList.add(device);
} }
protected void remove(Device device) { protected void remove(Device device) {
TaskManager.remove(device); EventManager.remove(device);
deviceList.remove(device); deviceList.remove(device);
} }
@@ -156,7 +156,7 @@ public class Main extends TaskListener {
try { try {
Main main = new Main(); Main main = new Main();
main.initialise(); main.initialise();
main.run(); main.start(false);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }

View File

@@ -7,7 +7,7 @@ import javax.swing.JButton;
import javax.swing.JFrame; import javax.swing.JFrame;
import pm.event.Task; import pm.event.Task;
import pm.task.TaskManager; import pm.event.EventManager;
import pm.value.Action; import pm.value.Action;
import pm.value.Target; import pm.value.Target;
@@ -158,42 +158,42 @@ public class GUIDeviceUI extends JFrame {
} }
protected void playAction(ActionEvent e) { protected void playAction(ActionEvent e) {
TaskManager.add(new Task(Action.PLAY, Target.APPLICATION)); EventManager.add(new Task(Action.PLAY, Target.APPLICATION));
} }
protected void pauseAction(ActionEvent e) { protected void pauseAction(ActionEvent e) {
TaskManager.add(new Task(Action.PAUSE, Target.APPLICATION)); EventManager.add(new Task(Action.PAUSE, Target.APPLICATION));
} }
protected void resumeAction(ActionEvent e) { protected void resumeAction(ActionEvent e) {
TaskManager.add(new Task(Action.RESUME, Target.APPLICATION)); EventManager.add(new Task(Action.RESUME, Target.APPLICATION));
} }
protected void nextAction(ActionEvent e) { protected void nextAction(ActionEvent e) {
TaskManager.add(new Task(Action.NEXT, Target.APPLICATION)); EventManager.add(new Task(Action.NEXT, Target.APPLICATION));
} }
protected void previousAction(ActionEvent e) { protected void previousAction(ActionEvent e) {
TaskManager.add(new Task(Action.PREVIOUS, Target.APPLICATION)); EventManager.add(new Task(Action.PREVIOUS, Target.APPLICATION));
} }
protected void forwardAction(ActionEvent e) { protected void forwardAction(ActionEvent e) {
TaskManager.add(new Task(Action.FORWARD, Target.APPLICATION)); EventManager.add(new Task(Action.FORWARD, Target.APPLICATION));
} }
protected void rewindAction(ActionEvent e) { protected void rewindAction(ActionEvent e) {
TaskManager.add(new Task(Action.REWIND, Target.APPLICATION)); EventManager.add(new Task(Action.REWIND, Target.APPLICATION));
} }
protected void muteAction(ActionEvent e) { protected void muteAction(ActionEvent e) {
TaskManager.add(new Task(Action.MUTE, Target.APPLICATION)); EventManager.add(new Task(Action.MUTE, Target.APPLICATION));
} }
protected void volumeUpAction(ActionEvent e) { protected void volumeUpAction(ActionEvent e) {
TaskManager.add(new Task(Action.VOLUME_UP, Target.APPLICATION)); EventManager.add(new Task(Action.VOLUME_UP, Target.APPLICATION));
} }
protected void volumeDownAction(ActionEvent e) { protected void volumeDownAction(ActionEvent e) {
TaskManager.add(new Task(Action.VOLUME_DOWN, Target.APPLICATION)); EventManager.add(new Task(Action.VOLUME_DOWN, Target.APPLICATION));
} }
} }

View File

@@ -4,7 +4,6 @@ import java.util.LinkedList;
import java.util.Queue; import java.util.Queue;
import pm.exception.ButtonException; import pm.exception.ButtonException;
import pm.exception.StateException;
import de.hardcode.jxinput.Axis; import de.hardcode.jxinput.Axis;
import de.hardcode.jxinput.Button; import de.hardcode.jxinput.Button;

View File

@@ -4,13 +4,13 @@ import pm.Button;
import pm.device.javainput.DirectionButton; import pm.device.javainput.DirectionButton;
import pm.device.javainput.JavaInputDevice; import pm.device.javainput.JavaInputDevice;
import pm.event.Task; import pm.event.Task;
import pm.event.task.Continuous;
import pm.event.task.Dynamic;
import pm.exception.button.UnknownButtonException; import pm.exception.button.UnknownButtonException;
import pm.exception.button.UnknownDirectionException; import pm.exception.button.UnknownDirectionException;
import pm.exception.device.DeviceInitialiseException; import pm.exception.device.DeviceInitialiseException;
import pm.macro.state.Hold; import pm.macro.state.Hold;
import pm.macro.state.Press; import pm.macro.state.Press;
import pm.task.Continuous;
import pm.task.Dynamic;
import pm.value.Action; import pm.value.Action;
import pm.value.Target; import pm.value.Target;
import de.hardcode.jxinput.event.JXInputButtonEvent; import de.hardcode.jxinput.event.JXInputButtonEvent;

View File

@@ -4,17 +4,15 @@ import java.util.ArrayList;
import com.melloware.jintellitype.JIntellitype; import com.melloware.jintellitype.JIntellitype;
import pm.macro.state.Press; import pm.Button;
import pm.value.Key; import pm.value.Key;
public class Hotkey extends Press { public class Hotkey implements Button {
protected static ArrayList<Hotkey> hotkeyList; protected static ArrayList<Hotkey> hotkeyList;
protected static JIntellitype jit; protected static JIntellitype jit;
public Hotkey(int modifier, int keycode) { public Hotkey(int modifier, int keycode) {
super(null); // Todo: nettere oplossing zoeken / controleren op null
int id = hotkeyList.size(); int id = hotkeyList.size();
button = new Modifier(id);
jit.registerHotKey(id, modifier, keycode); jit.registerHotKey(id, modifier, keycode);
hotkeyList.add(this); hotkeyList.add(this);
} }

View File

@@ -8,15 +8,12 @@ import com.melloware.jintellitype.JIntellitype;
import pm.Device; import pm.Device;
import pm.event.Task; import pm.event.Task;
import pm.exception.StateException;
import pm.exception.button.UnknownButtonException; import pm.exception.button.UnknownButtonException;
import pm.exception.device.DeviceExitException;
import pm.exception.device.DeviceInitialiseException; import pm.exception.device.DeviceInitialiseException;
import pm.macro.state.Hold;
import pm.macro.state.Press; import pm.macro.state.Press;
import pm.macro.state.Release; import pm.macro.state.Release;
import pm.task.Continuous;
import pm.value.Action; import pm.value.Action;
import pm.value.Command;
import pm.value.Key; import pm.value.Key;
import pm.value.Target; import pm.value.Target;
@@ -48,32 +45,38 @@ public class JIntellitypeDevice extends Device implements HotkeyListener, Intell
add( add(
new Hotkey(Modifier.CTRL | Modifier.WIN, 'x'), new Hotkey(Modifier.CTRL | Modifier.WIN, 'x'),
new Task(Action.EXIT, Target.MAIN)); new Task(Action.EXIT, Target.MAIN));
add( /*add(
new Hotkey(Modifier.CTRL | Modifier.WIN, 't'), new Hotkey(Modifier.CTRL | Modifier.WIN, 't'),
new Task(Action.TEST, Target.MAIN)); new Task(Action.TEST, Target.MAIN));
add( add(
new Hotkey(Modifier.CTRL | Modifier.WIN, 'r'), new Hotkey(Modifier.CTRL | Modifier.WIN, 'r'),
new Hotkey(Modifier.CTRL | Modifier.WIN, 's'), new Hotkey(Modifier.CTRL | Modifier.WIN, 's'),
new Continuous(Action.REPEAT, Target.APPLICATIONS, 500)); new Continuous(Action.REPEAT, Target.APPLICATIONS, 500));*/
}
protected void add(Hotkey hotkey, Task task) {
add(new Press(hotkey), task);
} }
public void onIntellitype(int command) { public void onIntellitype(int command) {
CommandButton commandButton; CommandButton commandButton;
try { try {
commandButton = CommandButton.create(command); commandButton = CommandButton.create(command);
System.out.println(commandButton);
add(new Press(commandButton)); add(new Press(commandButton));
add(new Release(commandButton)); add(new Release(commandButton));
} catch (UnknownButtonException e) {} } catch (UnknownButtonException e) {
e.printStackTrace();
}
} }
public void onHotKey(int id) { public void onHotKey(int id) {
Hotkey hotkey = hotkeyList.get(id); Hotkey hotkey = hotkeyList.get(id);
add(hotkeyList.get(id)); add(new Press(hotkey));
add(new Release(hotkey.getButton())); add(new Release(hotkey));
} }
public void exit() { public void exit() throws DeviceExitException {
super.exit();
jit.removeHotKeyListener(this); jit.removeHotKeyListener(this);
jit.removeIntellitypeListener(this); jit.removeIntellitypeListener(this);
jit.cleanUp(); jit.cleanUp();

View File

@@ -5,8 +5,8 @@ import java.util.Scanner;
import pm.Listener; import pm.Listener;
import pm.event.Task; import pm.event.Task;
import pm.event.EventManager;
import pm.exception.task.TaskNotSupportedException; import pm.exception.task.TaskNotSupportedException;
import pm.task.TaskManager;
import pm.value.Action; import pm.value.Action;
import pm.value.Target; import pm.value.Target;
@@ -23,7 +23,7 @@ public class InputListener extends Listener {
String string = input.next().toUpperCase(); String string = input.next().toUpperCase();
if(string != null) { if(string != null) {
try { try {
TaskManager.add( EventManager.add(
new Task(Action.valueOf(string), Target.APPLICATION)); new Task(Action.valueOf(string), Target.APPLICATION));
} catch(IllegalArgumentException e) {} } catch(IllegalArgumentException e) {}
} }

View File

@@ -8,13 +8,13 @@ import pm.Button;
import pm.Device; import pm.Device;
import pm.device.wiimote.gesture.GestureDevice; import pm.device.wiimote.gesture.GestureDevice;
import pm.event.Task; import pm.event.Task;
import pm.event.task.Continuous;
import pm.event.task.Dynamic;
import pm.exception.button.UnknownButtonException; import pm.exception.button.UnknownButtonException;
import pm.exception.device.DeviceInitialiseException; import pm.exception.device.DeviceInitialiseException;
import pm.macro.state.Hold; import pm.macro.state.Hold;
import pm.macro.state.Press; import pm.macro.state.Press;
import pm.macro.state.Release; import pm.macro.state.Release;
import pm.task.Continuous;
import pm.task.Dynamic;
import pm.value.Action; import pm.value.Action;
import pm.value.Target; import pm.value.Target;

View File

@@ -1,16 +1,16 @@
package pm.task; package pm.event;
import java.util.Queue; import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.ConcurrentLinkedQueue;
import pm.Listener; import pm.Listener;
import pm.event.Task; import pm.event.task.Continuous;
import pm.value.Action; import pm.value.Action;
public abstract class TaskListener extends Listener implements Runnable { public abstract class EventListener extends Listener implements Runnable {
protected Queue<Task> taskQueue; protected Queue<Task> taskQueue;
public TaskListener() { public EventListener() {
taskQueue = new ConcurrentLinkedQueue<Task>(); taskQueue = new ConcurrentLinkedQueue<Task>();
} }
@@ -29,7 +29,6 @@ public abstract class TaskListener extends Listener implements Runnable {
} }
protected void task(Task task) { protected void task(Task task) {
System.out.println(this);
Action action = task.getAction(); Action action = task.getAction();
if (task instanceof Continuous) { if (task instanceof Continuous) {
Continuous continuous = (Continuous) task; Continuous continuous = (Continuous) task;

View File

@@ -1,4 +1,4 @@
package pm.task; package pm.event;
import java.util.ArrayList; import java.util.ArrayList;
@@ -6,24 +6,23 @@ import pm.Application;
import pm.Device; import pm.Device;
import pm.Main; import pm.Main;
import pm.application.ApplicationCycle; import pm.application.ApplicationCycle;
import pm.event.Task; import pm.event.task.Stopper;
import pm.exception.task.TaskNotSupportedException;
import pm.value.Target; import pm.value.Target;
public class TaskManager { public class EventManager {
protected static ArrayList<TaskListener> taskListenerList; protected static ArrayList<EventListener> taskListenerList;
protected static ApplicationCycle applicationCycle; protected static ApplicationCycle applicationCycle;
public static void initialise(ApplicationCycle applicationCycle) { public static void initialise(ApplicationCycle applicationCycle) {
taskListenerList = new ArrayList<TaskListener>(); taskListenerList = new ArrayList<EventListener>();
TaskManager.applicationCycle = applicationCycle; EventManager.applicationCycle = applicationCycle;
} }
public static void add(TaskListener taskListener) { public static void add(EventListener eventListener) {
taskListenerList.add(taskListener); taskListenerList.add(eventListener);
} }
public static void add(TaskListener self, Task task) { public static void add(EventListener self, Task task) {
if (task instanceof Stopper) { if (task instanceof Stopper) {
Stopper stopper = (Stopper) task; Stopper stopper = (Stopper) task;
stopper.stop(); stopper.stop();
@@ -37,23 +36,24 @@ public class TaskManager {
applicationCycle.current().add(task); applicationCycle.current().add(task);
break; break;
default: default:
for (TaskListener taskListener : taskListenerList) { for (EventListener eventListener : taskListenerList) {
switch (target) { switch (target) {
case ALL: case ALL:
taskListener.add(task); eventListener.add(task);
break;
case MAIN: case MAIN:
if (taskListener instanceof Main) { if (eventListener instanceof Main) {
taskListener.add(task); eventListener.add(task);
} }
break; break;
case DEVICES: case DEVICES:
if (taskListener instanceof Device) { if (eventListener instanceof Device) {
taskListener.add(task); eventListener.add(task);
} }
break; break;
case APPLICATIONS: case APPLICATIONS:
if (taskListener instanceof Application) { if (eventListener instanceof Application) {
taskListener.add(task); eventListener.add(task);
} }
break; break;
} }
@@ -69,7 +69,7 @@ public class TaskManager {
} }
} }
public static void remove(TaskListener taskListener) { public static void remove(EventListener eventListener) {
taskListenerList.remove(taskListener); taskListenerList.remove(eventListener);
} }
} }

View File

@@ -1,4 +1,4 @@
package pm.task; package pm.event.task;
import pm.event.Task; import pm.event.Task;
import pm.value.Action; import pm.value.Action;

View File

@@ -1,4 +1,4 @@
package pm.task; package pm.event.task;
import pm.value.Action; import pm.value.Action;
import pm.value.Target; import pm.value.Target;

View File

@@ -1,4 +1,4 @@
package pm.task; package pm.event.task;
import pm.event.Task; import pm.event.Task;

View File

@@ -1,4 +1,4 @@
package pm.exception.state; package pm.exception.macro;
import pm.exception.MacroException; import pm.exception.MacroException;

View File

@@ -4,17 +4,17 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import pm.event.Task; import pm.event.Task;
import pm.task.TaskListener; import pm.event.EventListener;
import pm.task.TaskManager; import pm.event.EventManager;
public class SequenceListener { public class SequenceListener {
protected TaskListener taskListener; protected EventListener eventListener;
protected ArrayList<Sequence> sequenceList; protected ArrayList<Sequence> sequenceList;
protected HashMap<Sequence, Task> taskMap; protected HashMap<Sequence, Task> taskMap;
protected ArrayList<Active> activeList; protected ArrayList<Active> activeList;
public SequenceListener(TaskListener taskListener) { public SequenceListener(EventListener eventListener) {
this.taskListener = taskListener; this.eventListener = eventListener;
sequenceList = new ArrayList<Sequence>(); sequenceList = new ArrayList<Sequence>();
taskMap = new HashMap<Sequence, Task>(); taskMap = new HashMap<Sequence, Task>();
activeList = new ArrayList<Active>(); activeList = new ArrayList<Active>();
@@ -36,7 +36,7 @@ public class SequenceListener {
if (active.next(state)) { if (active.next(state)) {
if (active.last()) { if (active.last()) {
Task task = taskMap.get(active.getSequence()); Task task = taskMap.get(active.getSequence());
TaskManager.add(taskListener, task); EventManager.add(eventListener, task);
removeList.add(active); removeList.add(active);
} }
} else { } else {