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