diff --git a/java/.classpath b/java/.classpath index b30f754..da05537 100644 --- a/java/.classpath +++ b/java/.classpath @@ -6,6 +6,7 @@ + diff --git a/java/src/mimis/Application.java b/java/src/mimis/Application.java index 88da586..021d458 100644 --- a/java/src/mimis/Application.java +++ b/java/src/mimis/Application.java @@ -14,7 +14,6 @@ public abstract class Application extends EventHandler implements Titled, Exitab public Application(String title) { this.title = title; - //initialise(); } public String title() { diff --git a/java/src/mimis/Device.java b/java/src/mimis/Device.java index affdde9..f0ecd5e 100644 --- a/java/src/mimis/Device.java +++ b/java/src/mimis/Device.java @@ -4,12 +4,12 @@ import mimis.event.EventHandler; import mimis.event.Task; import mimis.exception.worker.ActivateException; import mimis.exception.worker.DeactivateException; -import mimis.macro.Sequence; -import mimis.macro.SequenceListener; -import mimis.macro.State; -import mimis.macro.state.Press; import mimis.manager.Exitable; import mimis.manager.Titled; +import mimis.sequence.Sequence; +import mimis.sequence.SequenceListener; +import mimis.sequence.State; +import mimis.sequence.state.Press; public abstract class Device extends EventHandler implements Titled, Exitable { protected String title; diff --git a/java/src/mimis/Macro.java b/java/src/mimis/Macro.java index e5e7766..f2b58aa 100644 --- a/java/src/mimis/Macro.java +++ b/java/src/mimis/Macro.java @@ -3,11 +3,11 @@ package mimis; import java.util.ArrayList; import mimis.exception.macro.StateOrderException; -import mimis.macro.Sequence; -import mimis.macro.State; -import mimis.macro.state.Hold; -import mimis.macro.state.Press; -import mimis.macro.state.Release; +import mimis.sequence.Sequence; +import mimis.sequence.State; +import mimis.sequence.state.Hold; +import mimis.sequence.state.Press; +import mimis.sequence.state.Release; public class Macro extends Sequence { diff --git a/java/src/mimis/Mimis.java b/java/src/mimis/Mimis.java index 8c7ff3d..bc8e83e 100644 --- a/java/src/mimis/Mimis.java +++ b/java/src/mimis/Mimis.java @@ -5,7 +5,7 @@ import mimis.event.EventRouter; import mimis.event.Feedback; import mimis.exception.worker.ActivateException; import mimis.feedback.TextFeedback; -import mimis.macro.SequenceListener; +import mimis.sequence.SequenceListener; import mimis.util.ArrayCycle; import mimis.value.Action; diff --git a/java/src/mimis/application/cmd/windows/winamp/WinampApplication.java b/java/src/mimis/application/cmd/windows/winamp/WinampApplication.java index a4ec4a2..c1a3917 100644 --- a/java/src/mimis/application/cmd/windows/winamp/WinampApplication.java +++ b/java/src/mimis/application/cmd/windows/winamp/WinampApplication.java @@ -39,7 +39,7 @@ public class WinampApplication extends WindowsApplication { muted = volume == 0; } - public void action(Action action) { + public void end(Action action) { log.fatal(handle); log.trace("WinampApplication: " + action); switch (action) { diff --git a/java/src/mimis/device/javainput/JavaInputDevice.java b/java/src/mimis/device/javainput/JavaInputDevice.java index 6fe02ee..3a28e85 100644 --- a/java/src/mimis/device/javainput/JavaInputDevice.java +++ b/java/src/mimis/device/javainput/JavaInputDevice.java @@ -8,8 +8,8 @@ import mimis.exception.button.UnknownDirectionException; import mimis.exception.device.DeviceNotFoundException; import mimis.exception.worker.ActivateException; import mimis.exception.worker.DeactivateException; -import mimis.macro.state.Press; -import mimis.macro.state.Release; +import mimis.sequence.state.Press; +import mimis.sequence.state.Release; import de.hardcode.jxinput.JXInputDevice; import de.hardcode.jxinput.JXInputManager; diff --git a/java/src/mimis/device/javainput/extreme3d/Extreme3DDevice.java b/java/src/mimis/device/javainput/extreme3d/Extreme3DDevice.java index b70779d..21c2be4 100644 --- a/java/src/mimis/device/javainput/extreme3d/Extreme3DDevice.java +++ b/java/src/mimis/device/javainput/extreme3d/Extreme3DDevice.java @@ -9,9 +9,9 @@ import mimis.exception.MacroException; import mimis.exception.button.UnknownButtonException; import mimis.exception.button.UnknownDirectionException; import mimis.exception.worker.ActivateException; -import mimis.macro.state.Hold; -import mimis.macro.state.Press; -import mimis.macro.state.Release; +import mimis.sequence.state.Hold; +import mimis.sequence.state.Press; +import mimis.sequence.state.Release; import mimis.value.Action; import mimis.value.Target; import de.hardcode.jxinput.event.JXInputButtonEvent; diff --git a/java/src/mimis/device/javainput/rumblepad/RumblepadDevice.java b/java/src/mimis/device/javainput/rumblepad/RumblepadDevice.java index 07c9f5e..5b0f8ec 100644 --- a/java/src/mimis/device/javainput/rumblepad/RumblepadDevice.java +++ b/java/src/mimis/device/javainput/rumblepad/RumblepadDevice.java @@ -7,7 +7,7 @@ import mimis.event.Task; import mimis.exception.button.UnknownButtonException; import mimis.exception.button.UnknownDirectionException; import mimis.exception.worker.ActivateException; -import mimis.macro.state.Press; +import mimis.sequence.state.Press; import mimis.value.Action; import mimis.value.Target; diff --git a/java/src/mimis/device/jintellitype/JIntellitypeDevice.java b/java/src/mimis/device/jintellitype/JIntellitypeDevice.java index f644f7e..71f4952 100644 --- a/java/src/mimis/device/jintellitype/JIntellitypeDevice.java +++ b/java/src/mimis/device/jintellitype/JIntellitypeDevice.java @@ -6,8 +6,8 @@ import mimis.Device; import mimis.event.Task; import mimis.exception.button.UnknownButtonException; import mimis.exception.worker.ActivateException; -import mimis.macro.state.Press; -import mimis.macro.state.Release; +import mimis.sequence.state.Press; +import mimis.sequence.state.Release; import mimis.value.Action; import mimis.value.Key; import mimis.value.Target; diff --git a/java/src/mimis/device/lirc/LircDevice.java b/java/src/mimis/device/lirc/LircDevice.java index b9a1b40..8f9e0b5 100644 --- a/java/src/mimis/device/lirc/LircDevice.java +++ b/java/src/mimis/device/lirc/LircDevice.java @@ -8,8 +8,8 @@ import mimis.device.lirc.button.DenonRC176; import mimis.device.lirc.button.PhiliphsRCLE011Button; import mimis.exception.worker.ActivateException; import mimis.exception.worker.DeactivateException; -import mimis.macro.state.Press; -import mimis.macro.state.Release; +import mimis.sequence.state.Press; +import mimis.sequence.state.Release; import mimis.util.Multiplexer; import mimis.util.multiplexer.SignalListener; import mimis.value.Signal; diff --git a/java/src/mimis/device/panel/PanelDevice.java b/java/src/mimis/device/panel/PanelDevice.java index b616f4f..d2780a5 100644 --- a/java/src/mimis/device/panel/PanelDevice.java +++ b/java/src/mimis/device/panel/PanelDevice.java @@ -7,8 +7,8 @@ import javax.swing.WindowConstants; import mimis.Device; import mimis.event.Task; import mimis.exception.worker.ActivateException; -import mimis.macro.state.Press; -import mimis.macro.state.Release; +import mimis.sequence.state.Press; +import mimis.sequence.state.Release; import mimis.value.Action; import mimis.value.Target; diff --git a/java/src/mimis/device/wiimote/WiimoteDevice.java b/java/src/mimis/device/wiimote/WiimoteDevice.java index 65b1644..d8b9db3 100644 --- a/java/src/mimis/device/wiimote/WiimoteDevice.java +++ b/java/src/mimis/device/wiimote/WiimoteDevice.java @@ -8,8 +8,8 @@ import mimis.event.Task; import mimis.exception.button.UnknownButtonException; import mimis.exception.device.DeviceNotFoundException; import mimis.exception.worker.ActivateException; -import mimis.macro.state.Press; -import mimis.macro.state.Release; +import mimis.sequence.state.Press; +import mimis.sequence.state.Release; import mimis.value.Action; import org.wiigee.event.GestureEvent; diff --git a/java/src/mimis/event/EventHandler.java b/java/src/mimis/event/EventHandler.java index 14ab1bd..2c9a3a7 100644 --- a/java/src/mimis/event/EventHandler.java +++ b/java/src/mimis/event/EventHandler.java @@ -34,5 +34,4 @@ public abstract class EventHandler extends EventListener { protected void begin(Action action) {} protected void end(Action action) {} - protected void action(Action action) {} } \ No newline at end of file diff --git a/java/src/mimis/event/EventRouter.java b/java/src/mimis/event/EventRouter.java index f63f39a..57b4e02 100644 --- a/java/src/mimis/event/EventRouter.java +++ b/java/src/mimis/event/EventRouter.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import mimis.Application; - public abstract class EventRouter extends EventListener { protected ArrayList eventListenerList; protected Application application; diff --git a/java/src/mimis/event/Task.java b/java/src/mimis/event/Task.java index f4ee9c6..c33a8e4 100644 --- a/java/src/mimis/event/Task.java +++ b/java/src/mimis/event/Task.java @@ -6,8 +6,7 @@ import mimis.value.Signal; import mimis.value.Target; public class Task extends Event { - public static Target TARGET = Target.SELF; - public static Signal SIGNAL = Signal.END; + public static final Target TARGET = Target.SELF; protected Action action; protected Signal signal; @@ -17,12 +16,8 @@ public class Task extends Event { } public Task(Target target, Action action) { - this(target, action, SIGNAL); - } - - public Task(Target target, Action action, Signal signal) { - super(target); - this.action = action; + super(target); + this.action = action; } public Action getAction() { @@ -32,4 +27,8 @@ public class Task extends Event { public Signal getSignal() { return signal; } + + public void setSignal(Signal signal) { + this.signal = signal; + } } diff --git a/java/src/mimis/event/router/GlobalRouter.java b/java/src/mimis/event/router/GlobalRouter.java index dcbf45e..9cae43e 100644 --- a/java/src/mimis/event/router/GlobalRouter.java +++ b/java/src/mimis/event/router/GlobalRouter.java @@ -33,25 +33,26 @@ public class GlobalRouter extends EventRouter { } } while (object != null); } catch (IOException e) { - e.printStackTrace(); + log.error(e); } catch (ClassNotFoundException e) { - e.printStackTrace(); + log.error(e); } } }; return; } catch (UnknownHostException e) { - } catch (IOException e) {} + log.error(e); + } catch (IOException e) { + log.error(e); + } throw new GlobalRouterException(); } public void event(Event event) { - System.out.println("NetworkSpreader: event!"); - //System.out.println(socket.isConnected()); try { objectOutputStream.writeObject(event); } catch (IOException e) { - e.printStackTrace(); + log.error(e); } } } diff --git a/java/src/mimis/macro/Active.java b/java/src/mimis/sequence/Active.java similarity index 85% rename from java/src/mimis/macro/Active.java rename to java/src/mimis/sequence/Active.java index d5732c1..5ef2d72 100644 --- a/java/src/mimis/macro/Active.java +++ b/java/src/mimis/sequence/Active.java @@ -1,4 +1,4 @@ -package mimis.macro; +package mimis.sequence; public class Active { @@ -25,6 +25,10 @@ public class Active { State next = sequence.get(++step); return next == null ? false : state.equals(next); } + + public boolean first() { + return step == 0; + } public boolean last() { return step == sequence.count() - 1; diff --git a/java/src/mimis/macro/Sequence.java b/java/src/mimis/sequence/Sequence.java similarity index 88% rename from java/src/mimis/macro/Sequence.java rename to java/src/mimis/sequence/Sequence.java index 24febb7..78430cb 100644 --- a/java/src/mimis/macro/Sequence.java +++ b/java/src/mimis/sequence/Sequence.java @@ -1,4 +1,4 @@ -package mimis.macro; +package mimis.sequence; public class Sequence { protected State[] eventArray; diff --git a/java/src/mimis/macro/SequenceListener.java b/java/src/mimis/sequence/SequenceListener.java similarity index 66% rename from java/src/mimis/macro/SequenceListener.java rename to java/src/mimis/sequence/SequenceListener.java index 2c711e7..58e1799 100644 --- a/java/src/mimis/macro/SequenceListener.java +++ b/java/src/mimis/sequence/SequenceListener.java @@ -1,4 +1,4 @@ -package mimis.macro; +package mimis.sequence; import java.util.ArrayList; import java.util.HashMap; @@ -10,20 +10,21 @@ import mimis.Event; import mimis.event.EventHandler; import mimis.event.EventListener; import mimis.event.Task; +import mimis.value.Signal; import mimis.value.Target; public class SequenceListener { protected Log log = LogFactory.getLog(getClass()); - protected EventHandler eventHandler; + protected EventHandler self; protected ArrayList sequenceList; protected HashMap eventMap; protected ArrayList activeList; protected static EventListener eventListener; - public SequenceListener(EventHandler eventHandler) { - this.eventHandler = eventHandler; + public SequenceListener(EventHandler self) { + this.self = self; sequenceList = new ArrayList(); eventMap = new HashMap(); activeList = new ArrayList(); @@ -48,13 +49,11 @@ public class SequenceListener { ArrayList removeList = new ArrayList(); for (Active active : activeList) { if (active.next(state)) { - if (active.last()) { - Event event = eventMap.get(active.getSequence()); - if (event.getTarget().equals(Target.SELF)) { - eventHandler.event(event); - } else { - eventListener.add(event); - } + Event event = eventMap.get(active.getSequence()); + if (active.first()) { + add(event, Signal.BEGIN); + } else if (active.last()) { + add(event, Signal.END); removeList.add(active); } } else { @@ -65,4 +64,16 @@ public class SequenceListener { activeList.remove(active); } } + + protected void add(Event event, Signal signal) { + if (event instanceof Task) { + Task task = (Task) event; + task.setSignal(signal); + } + if (event.getTarget().equals(Target.SELF)) { + eventListener.add(event); + } else { + self.add(event); + } + } } diff --git a/java/src/mimis/macro/State.java b/java/src/mimis/sequence/State.java similarity index 89% rename from java/src/mimis/macro/State.java rename to java/src/mimis/sequence/State.java index dacc13b..f9dad5f 100644 --- a/java/src/mimis/macro/State.java +++ b/java/src/mimis/sequence/State.java @@ -1,4 +1,4 @@ -package mimis.macro; +package mimis.sequence; import mimis.Button; diff --git a/java/src/mimis/macro/state/Hold.java b/java/src/mimis/sequence/state/Hold.java similarity index 64% rename from java/src/mimis/macro/state/Hold.java rename to java/src/mimis/sequence/state/Hold.java index 9c6b82a..a127c00 100644 --- a/java/src/mimis/macro/state/Hold.java +++ b/java/src/mimis/sequence/state/Hold.java @@ -1,7 +1,7 @@ -package mimis.macro.state; +package mimis.sequence.state; import mimis.Button; -import mimis.macro.State; +import mimis.sequence.State; public class Hold extends State { public Hold(Button button) { diff --git a/java/src/mimis/macro/state/Press.java b/java/src/mimis/sequence/state/Press.java similarity index 64% rename from java/src/mimis/macro/state/Press.java rename to java/src/mimis/sequence/state/Press.java index fe64e64..bf57b12 100644 --- a/java/src/mimis/macro/state/Press.java +++ b/java/src/mimis/sequence/state/Press.java @@ -1,7 +1,7 @@ -package mimis.macro.state; +package mimis.sequence.state; import mimis.Button; -import mimis.macro.State; +import mimis.sequence.State; public class Press extends State { public Press(Button button) { diff --git a/java/src/mimis/macro/state/Release.java b/java/src/mimis/sequence/state/Release.java similarity index 65% rename from java/src/mimis/macro/state/Release.java rename to java/src/mimis/sequence/state/Release.java index f444973..6de500d 100644 --- a/java/src/mimis/macro/state/Release.java +++ b/java/src/mimis/sequence/state/Release.java @@ -1,7 +1,7 @@ -package mimis.macro.state; +package mimis.sequence.state; import mimis.Button; -import mimis.macro.State; +import mimis.sequence.State; public class Release extends State { public Release(Button button) { diff --git a/java/src/mimis/todo/TODO b/java/src/mimis/todo/TODO index 1813c72..7662149 100644 --- a/java/src/mimis/todo/TODO +++ b/java/src/mimis/todo/TODO @@ -1,46 +1,15 @@ TODO ------------ -mappings lezen vanuit config bestand - 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. - -nummerinfo weergeven, waar? via feedback? - -javadoc maken, class diagram opstellen enz..... - -meer applicaties implementeren, zoals VLC, WMP, Youtube? (interface naar flash?) - -client maken die remote devices kan beheren en lokaal acties kan uitvoeren +feedback? mogelijkheid tot webstart onderzoeken -alle listeners in gezamelijk pakket plaatsen? - 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 - -algemene listener parent class / interface maken? die zou standaard thread functies implementeren / vereisen: start, run, stop -+hier zijn al enkele aanpassingen aan gemaakt, de main stuurt nu direct de TaskManager aan in plaats van dat het vannuit een Device of Application gebeurd - -log bijhouden -+werkt via apache commons logging, nu nog boodschappen toevoegen! - - -DONE -------------- -lantextdevice generiek maken met normale textdevice \ No newline at end of file +favicon maken? \ No newline at end of file