From 8092b678cf5dc40091f35358e2230189afb7f32b Mon Sep 17 00:00:00 2001 From: Rik Veenboer Date: Sat, 12 Feb 2011 19:06:55 +0000 Subject: [PATCH] Continuous systeem afgemaakt, rollen van verschillende listeners en gatherers gecontroleerd en nutteloze exceptions verwijderd. Het nieuwe actions systeem moet nog worden doorgevoerd in de devices. --- java/src/pm/Action.java | 33 +++++++---------- java/src/pm/Application.java | 14 ++++++- java/src/pm/Device.java | 37 ++++++++++++++----- java/src/pm/Macro.java | 4 ++ java/src/pm/Main.java | 11 ++++-- java/src/pm/Task.java | 4 +- .../jintellitype/JIntellitypeDevice.java | 22 +++++------ java/src/pm/exception/ActionException.java | 5 --- .../action/InvokeActionException.java | 7 ---- .../action/NotImplementedActionException.java | 7 ---- .../action/TargetNotSetException.java | 7 ---- .../action/UnknownTargetException.java | 7 ---- java/src/pm/macro/MacroListener.java | 10 ++--- java/src/pm/task/Continuous.java | 36 ++++++++++++++++++ java/src/pm/task/Stopper.java | 16 ++++++++ java/src/pm/task/TaskGatherer.java | 22 +++++++++++ java/src/pm/task/TaskListener.java | 4 +- java/src/pm/task/TaskProvider.java | 17 --------- 18 files changed, 158 insertions(+), 105 deletions(-) delete mode 100644 java/src/pm/exception/ActionException.java delete mode 100644 java/src/pm/exception/action/InvokeActionException.java delete mode 100644 java/src/pm/exception/action/NotImplementedActionException.java delete mode 100644 java/src/pm/exception/action/TargetNotSetException.java delete mode 100644 java/src/pm/exception/action/UnknownTargetException.java create mode 100644 java/src/pm/task/Continuous.java create mode 100644 java/src/pm/task/Stopper.java create mode 100644 java/src/pm/task/TaskGatherer.java delete mode 100644 java/src/pm/task/TaskProvider.java diff --git a/java/src/pm/Action.java b/java/src/pm/Action.java index 7b90c65..41f298f 100644 --- a/java/src/pm/Action.java +++ b/java/src/pm/Action.java @@ -1,23 +1,18 @@ package pm; public enum Action { - START ("start"), - TEST ("test"), - EXIT ("exit"), - PLAY ("play"), - PAUSE ("pause"), - RESUME ("resume"), - NEXT ("next"), - PREVIOUS ("previous"), - FORWARD ("forward"), - REWIND ("rewind"), - MUTE ("mute"), - VOLUME_UP ("volumeUp"), - VOLUME_DOWN ("volumeDown"); - - protected String action; - - private Action(String action) { - this.action = action; - } + EXIT, + FORWARD, + MUTE, + NEXT, + PAUSE, + PLAY, + PREVIOUS, + REPEAT, + RESUME, + REWIND, + START, + TEST, + VOLUME_DOWN, + VOLUME_UP; } diff --git a/java/src/pm/Application.java b/java/src/pm/Application.java index 0b8367b..467bbf4 100644 --- a/java/src/pm/Application.java +++ b/java/src/pm/Application.java @@ -2,6 +2,7 @@ package pm; import pm.exception.application.ApplicationExitException; import pm.exception.application.ApplicationInitialiseException; +import pm.task.Continuous; import pm.task.TaskListener; public abstract class Application extends TaskListener { @@ -21,7 +22,18 @@ public abstract class Application extends TaskListener { } protected void task(Task task) { - action(task.getAction()); + Action action = task.getAction(); + if (task instanceof Continuous) { + Continuous continuous = (Continuous) task; + int sleep = continuous.getSleep(); + do { + action(action); + sleep(sleep); + } while (run && !continuous.getStop()); + continuous.reset(); + } else { + action(action); + } } protected abstract void action(Action action); diff --git a/java/src/pm/Device.java b/java/src/pm/Device.java index 62e0c39..d2dcebb 100644 --- a/java/src/pm/Device.java +++ b/java/src/pm/Device.java @@ -1,11 +1,14 @@ package pm; -import pm.exception.MacroException; import pm.exception.device.DeviceExitException; import pm.exception.device.DeviceInitialiseException; import pm.macro.Event; import pm.macro.MacroListener; -import pm.task.TaskProvider; +import pm.macro.event.Hold; +import pm.macro.event.Press; +import pm.macro.event.Release; +import pm.task.Continuous; +import pm.task.Stopper; public abstract class Device { protected MacroListener macroListener; @@ -14,22 +17,36 @@ public abstract class Device { macroListener = new MacroListener(); } - public void add(Macro macro, Task task) { + /* Register macro's */ + protected void add(Macro macro, Task task) { macroListener.add(macro, task); } - public void add(Event event, Task task) throws MacroException { - macroListener.add(event, task); + protected void add(Event event, Task task) { + add(new Macro(event), task); } - public void add(Event event) { + protected void add(Macro startMacro, Macro stopMacro, Continuous continuous) { + add(startMacro, continuous); + add(stopMacro, new Stopper(continuous)); + } + + protected void add(Event startEvent, Event stopEvent, Continuous continuous) { + add(startEvent, continuous); + add(stopEvent, new Stopper(continuous)); + } + + protected void add(Hold hold, Continuous continuous) { + Button button = hold.getButton(); + add(new Press(button), new Release(button), continuous); + } + + /* Recognize events */ + protected void add(Event event) { macroListener.add(event); } - public void add(Task task) { - TaskProvider.add(task); - } - + /* Device default methods */ public void initialise() throws DeviceInitialiseException {} public void exit() throws DeviceExitException {} } diff --git a/java/src/pm/Macro.java b/java/src/pm/Macro.java index e1012e0..9b79d7e 100644 --- a/java/src/pm/Macro.java +++ b/java/src/pm/Macro.java @@ -12,6 +12,10 @@ import pm.macro.event.Release; public class Macro { protected Event[] eventArray; + public Macro(Event event) { + eventArray = new Event[]{event}; + } + public Macro(Event... eventArray) throws MacroException { ArrayList