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,11 +1,11 @@
package pm;
import pm.event.EventListener;
import pm.event.EventManager;
import pm.exception.application.ApplicationExitException;
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() {
super();
}

View File

@@ -1,6 +1,9 @@
package pm;
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.DeviceInitialiseException;
import pm.macro.Sequence;
@@ -9,11 +12,8 @@ import pm.macro.State;
import pm.macro.state.Hold;
import pm.macro.state.Press;
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;
public Device() {

View File

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

View File

@@ -2,8 +2,7 @@ package pm;
import java.util.ArrayList;
import pm.exception.MacroException;
import pm.exception.state.StateOrderException;
import pm.exception.macro.StateOrderException;
import pm.macro.Sequence;
import pm.macro.State;
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.lan.LanTextDevice;
import pm.device.wiimote.WiimoteDevice;
import pm.event.EventListener;
import pm.event.EventManager;
import pm.exception.application.ApplicationExitException;
import pm.exception.application.ApplicationInitialiseException;
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 {
public class Main extends EventListener {
//protected String[] deviceClassArray;
protected ApplicationCycle applicationCycle;
protected ArrayList<Device> deviceList;
@@ -37,8 +37,8 @@ public class Main extends TaskListener {
"pm.device.wiimote.WiimoteDevice"};*/
applicationCycle = new ApplicationCycle();
deviceList = new ArrayList<Device>();
TaskManager.initialise(applicationCycle);
TaskManager.add(this);
EventManager.initialise(applicationCycle);
EventManager.add(this);
}
public void initialise() throws DeviceInitialiseException {
@@ -133,22 +133,22 @@ public class Main extends TaskListener {
/* Add / remove methods */
protected void add(Application application) {
TaskManager.add(application);
EventManager.add(application);
applicationCycle.add(application);
}
protected void remove(Application application) {
TaskManager.remove(application);
EventManager.remove(application);
applicationCycle.remove(application);
}
protected void add(Device device) {
TaskManager.add(device);
EventManager.add(device);
deviceList.add(device);
}
protected void remove(Device device) {
TaskManager.remove(device);
EventManager.remove(device);
deviceList.remove(device);
}
@@ -156,7 +156,7 @@ public class Main extends TaskListener {
try {
Main main = new Main();
main.initialise();
main.run();
main.start(false);
} catch (Exception e) {
e.printStackTrace();
}

View File

@@ -7,7 +7,7 @@ import javax.swing.JButton;
import javax.swing.JFrame;
import pm.event.Task;
import pm.task.TaskManager;
import pm.event.EventManager;
import pm.value.Action;
import pm.value.Target;
@@ -158,42 +158,42 @@ public class GUIDeviceUI extends JFrame {
}
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) {
TaskManager.add(new Task(Action.PAUSE, Target.APPLICATION));
EventManager.add(new Task(Action.PAUSE, Target.APPLICATION));
}
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) {
TaskManager.add(new Task(Action.NEXT, Target.APPLICATION));
EventManager.add(new Task(Action.NEXT, Target.APPLICATION));
}
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) {
TaskManager.add(new Task(Action.FORWARD, Target.APPLICATION));
EventManager.add(new Task(Action.FORWARD, Target.APPLICATION));
}
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) {
TaskManager.add(new Task(Action.MUTE, Target.APPLICATION));
EventManager.add(new Task(Action.MUTE, Target.APPLICATION));
}
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) {
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 pm.exception.ButtonException;
import pm.exception.StateException;
import de.hardcode.jxinput.Axis;
import de.hardcode.jxinput.Button;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,4 +1,4 @@
package pm.task;
package 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;

View File

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