Continuous, Dynamic en Stopper Task-afgeleiden verwijderd. Op weg naar een eenvoudig systeem waarbij een task een start en een stop signaal mee krijgt.
This commit is contained in:
@@ -2,16 +2,12 @@ package mimis;
|
||||
|
||||
import mimis.event.EventHandler;
|
||||
import mimis.event.Task;
|
||||
import mimis.event.task.Continuous;
|
||||
import mimis.event.task.Stopper;
|
||||
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.Hold;
|
||||
import mimis.macro.state.Press;
|
||||
import mimis.macro.state.Release;
|
||||
import mimis.manager.Titled;
|
||||
|
||||
public abstract class Device extends EventHandler implements Titled, Exitable {
|
||||
@@ -48,32 +44,6 @@ public abstract class Device extends EventHandler implements Titled, Exitable {
|
||||
add(press, task, true);
|
||||
}
|
||||
|
||||
protected void add(Hold hold, Task pressTask, Task releaseTask) {
|
||||
Button button = hold.getButton();
|
||||
add(new Press(button), pressTask, false);
|
||||
add(new Release(button), releaseTask);
|
||||
}
|
||||
|
||||
protected void add(Sequence startSequence, Sequence stopSequence, Continuous continuous) {
|
||||
add(startSequence, continuous);
|
||||
add(stopSequence, new Stopper(continuous));
|
||||
}
|
||||
|
||||
protected void add(State startEvent, State stopEvent, Continuous continuous) {
|
||||
add(startEvent, continuous);
|
||||
add(stopEvent, new Stopper(continuous));
|
||||
}
|
||||
|
||||
protected void add(Press startPress, Press stopPress, Continuous continuous) {
|
||||
add(new Macro(startPress), continuous);
|
||||
add(new Macro(stopPress), 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(State state) {
|
||||
log.debug(state.toString() + " " + state.getButton());
|
||||
|
||||
@@ -4,15 +4,13 @@ import mimis.Button;
|
||||
import mimis.device.javainput.DirectionButton;
|
||||
import mimis.device.javainput.JavaInputDevice;
|
||||
import mimis.event.Task;
|
||||
import mimis.event.task.Continuous;
|
||||
import mimis.event.task.Dynamic;
|
||||
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.value.Action;
|
||||
import mimis.value.Target;
|
||||
|
||||
import de.hardcode.jxinput.event.JXInputButtonEvent;
|
||||
import de.hardcode.jxinput.event.JXInputDirectionalEvent;
|
||||
|
||||
@@ -41,7 +39,7 @@ public class RumblepadDevice extends JavaInputDevice {
|
||||
add(
|
||||
new Press(RumblepadButton.EIGHT),
|
||||
new Task(Target.MIMIS, Action.PREVIOUS));
|
||||
add(
|
||||
/*add(
|
||||
new Hold(RumblepadButton.FIVE),
|
||||
new Dynamic(Action.FORWARD, Target.APPLICATION, 200, -30));
|
||||
add(
|
||||
@@ -52,7 +50,7 @@ public class RumblepadDevice extends JavaInputDevice {
|
||||
new Continuous(Action.VOLUME_DOWN, Target.APPLICATION, 100));
|
||||
add(
|
||||
new Hold(RumblepadButton.TEN),
|
||||
new Continuous(Action.VOLUME_UP, Target.APPLICATION, 100));
|
||||
new Continuous(Action.VOLUME_UP, Target.APPLICATION, 100));*/
|
||||
}
|
||||
|
||||
protected Button getButton(JXInputButtonEvent event) throws UnknownButtonException {
|
||||
|
||||
@@ -8,7 +8,6 @@ import mimis.event.Task;
|
||||
import mimis.exception.button.UnknownButtonException;
|
||||
import mimis.exception.device.DeviceNotFoundException;
|
||||
import mimis.exception.worker.ActivateException;
|
||||
import mimis.macro.state.Hold;
|
||||
import mimis.macro.state.Press;
|
||||
import mimis.macro.state.Release;
|
||||
import mimis.value.Action;
|
||||
@@ -56,17 +55,17 @@ public class WiimoteDevice extends Device implements GestureListener {
|
||||
}
|
||||
wiimote.activateMotionSensing();
|
||||
|
||||
add(
|
||||
/*add(
|
||||
new Hold(WiimoteButton.A),
|
||||
new Task(Action.TRAIN),
|
||||
new Task(Action.STOP));
|
||||
new Task(Action.STOP));*/
|
||||
add(
|
||||
new Press(WiimoteButton.B),
|
||||
new Task(Action.SAVE));
|
||||
add(
|
||||
new Press(WiimoteButton.DOWN),
|
||||
new Task(Action.LOAD));
|
||||
add(
|
||||
/*add(
|
||||
new Hold(WiimoteButton.HOME),
|
||||
new Task(Action.RECOGNIZE),
|
||||
new Task(Action.STOP));/*
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package mimis.event;
|
||||
|
||||
import mimis.Event;
|
||||
import mimis.event.task.Continuous;
|
||||
import mimis.value.Action;
|
||||
|
||||
public abstract class EventHandler extends EventListener {
|
||||
@@ -12,7 +11,6 @@ public abstract class EventHandler extends EventListener {
|
||||
}
|
||||
|
||||
public void event(Event event) {
|
||||
log.debug("aaa" + event);
|
||||
if (event instanceof Feedback) {
|
||||
feedback((Feedback) event);
|
||||
} else if (event instanceof Task) {
|
||||
@@ -23,18 +21,7 @@ public abstract class EventHandler extends EventListener {
|
||||
protected void feedback(Feedback feedback) {}
|
||||
|
||||
protected void task(Task task) {
|
||||
Action action = task.getAction();
|
||||
if (task instanceof Continuous) {
|
||||
Continuous continuous = (Continuous) task;
|
||||
do {
|
||||
action(action);
|
||||
continuous.nextIteration();
|
||||
sleep(continuous.getSleep());
|
||||
} while (running && !continuous.getStop());
|
||||
continuous.reset();
|
||||
} else {
|
||||
action(action);
|
||||
}
|
||||
action(task.getAction());
|
||||
}
|
||||
|
||||
protected void action(Action action) {}
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
package mimis.event.task;
|
||||
|
||||
import mimis.event.Task;
|
||||
import mimis.value.Action;
|
||||
import mimis.value.Target;
|
||||
|
||||
public class Continuous extends Task {
|
||||
protected static final int SLEEP = 0;
|
||||
|
||||
protected int sleep;
|
||||
protected int iteration;
|
||||
protected boolean stop;
|
||||
|
||||
public Continuous(Action action, Target target, int sleep) {
|
||||
super(target, action);
|
||||
this.sleep = sleep;
|
||||
reset();
|
||||
}
|
||||
|
||||
public Continuous(Action action, Target target) {
|
||||
this(action, target, SLEEP);
|
||||
}
|
||||
|
||||
public void nextIteration() {
|
||||
++iteration;
|
||||
}
|
||||
|
||||
public void stop() {
|
||||
stop = true;
|
||||
}
|
||||
|
||||
public void reset() {
|
||||
iteration = 0;
|
||||
stop = false;
|
||||
}
|
||||
|
||||
public int getSleep() {
|
||||
return sleep;
|
||||
}
|
||||
|
||||
public boolean getStop() {
|
||||
return stop;
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
package mimis.event.task;
|
||||
|
||||
import mimis.value.Action;
|
||||
import mimis.value.Target;
|
||||
|
||||
public class Dynamic extends Continuous {
|
||||
protected static final int RATE = 10;
|
||||
|
||||
protected int rate;
|
||||
|
||||
public Dynamic(Action action, Target target, int sleep, int rate) {
|
||||
super(action, target, sleep);
|
||||
this.rate = rate;
|
||||
}
|
||||
|
||||
public Dynamic(Action action, Target target, int sleep) {
|
||||
super(action, target, sleep);
|
||||
this.rate = RATE;
|
||||
}
|
||||
|
||||
public int getSleep() {
|
||||
return sleep + rate * iteration;
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
package mimis.event.task;
|
||||
|
||||
import mimis.event.Task;
|
||||
|
||||
public class Stopper extends Task {
|
||||
protected Continuous continuous;
|
||||
|
||||
public Stopper(Continuous continuous) {
|
||||
super(null, null);
|
||||
this.continuous = continuous;
|
||||
}
|
||||
|
||||
public void stop() {
|
||||
continuous.stop(); // Todo: check if the task is really started?
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user