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.EventHandler;
|
||||||
import mimis.event.Task;
|
import mimis.event.Task;
|
||||||
import mimis.event.task.Continuous;
|
|
||||||
import mimis.event.task.Stopper;
|
|
||||||
import mimis.exception.worker.ActivateException;
|
import mimis.exception.worker.ActivateException;
|
||||||
import mimis.exception.worker.DeactivateException;
|
import mimis.exception.worker.DeactivateException;
|
||||||
import mimis.macro.Sequence;
|
import mimis.macro.Sequence;
|
||||||
import mimis.macro.SequenceListener;
|
import mimis.macro.SequenceListener;
|
||||||
import mimis.macro.State;
|
import mimis.macro.State;
|
||||||
import mimis.macro.state.Hold;
|
|
||||||
import mimis.macro.state.Press;
|
import mimis.macro.state.Press;
|
||||||
import mimis.macro.state.Release;
|
|
||||||
import mimis.manager.Titled;
|
import mimis.manager.Titled;
|
||||||
|
|
||||||
public abstract class Device extends EventHandler implements Titled, Exitable {
|
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);
|
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 */
|
/* Recognize events */
|
||||||
protected void add(State state) {
|
protected void add(State state) {
|
||||||
log.debug(state.toString() + " " + state.getButton());
|
log.debug(state.toString() + " " + state.getButton());
|
||||||
|
|||||||
@@ -4,15 +4,13 @@ import mimis.Button;
|
|||||||
import mimis.device.javainput.DirectionButton;
|
import mimis.device.javainput.DirectionButton;
|
||||||
import mimis.device.javainput.JavaInputDevice;
|
import mimis.device.javainput.JavaInputDevice;
|
||||||
import mimis.event.Task;
|
import mimis.event.Task;
|
||||||
import mimis.event.task.Continuous;
|
|
||||||
import mimis.event.task.Dynamic;
|
|
||||||
import mimis.exception.button.UnknownButtonException;
|
import mimis.exception.button.UnknownButtonException;
|
||||||
import mimis.exception.button.UnknownDirectionException;
|
import mimis.exception.button.UnknownDirectionException;
|
||||||
import mimis.exception.worker.ActivateException;
|
import mimis.exception.worker.ActivateException;
|
||||||
import mimis.macro.state.Hold;
|
|
||||||
import mimis.macro.state.Press;
|
import mimis.macro.state.Press;
|
||||||
import mimis.value.Action;
|
import mimis.value.Action;
|
||||||
import mimis.value.Target;
|
import mimis.value.Target;
|
||||||
|
|
||||||
import de.hardcode.jxinput.event.JXInputButtonEvent;
|
import de.hardcode.jxinput.event.JXInputButtonEvent;
|
||||||
import de.hardcode.jxinput.event.JXInputDirectionalEvent;
|
import de.hardcode.jxinput.event.JXInputDirectionalEvent;
|
||||||
|
|
||||||
@@ -41,7 +39,7 @@ public class RumblepadDevice extends JavaInputDevice {
|
|||||||
add(
|
add(
|
||||||
new Press(RumblepadButton.EIGHT),
|
new Press(RumblepadButton.EIGHT),
|
||||||
new Task(Target.MIMIS, Action.PREVIOUS));
|
new Task(Target.MIMIS, Action.PREVIOUS));
|
||||||
add(
|
/*add(
|
||||||
new Hold(RumblepadButton.FIVE),
|
new Hold(RumblepadButton.FIVE),
|
||||||
new Dynamic(Action.FORWARD, Target.APPLICATION, 200, -30));
|
new Dynamic(Action.FORWARD, Target.APPLICATION, 200, -30));
|
||||||
add(
|
add(
|
||||||
@@ -52,7 +50,7 @@ public class RumblepadDevice extends JavaInputDevice {
|
|||||||
new Continuous(Action.VOLUME_DOWN, Target.APPLICATION, 100));
|
new Continuous(Action.VOLUME_DOWN, Target.APPLICATION, 100));
|
||||||
add(
|
add(
|
||||||
new Hold(RumblepadButton.TEN),
|
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 {
|
protected Button getButton(JXInputButtonEvent event) throws UnknownButtonException {
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import mimis.event.Task;
|
|||||||
import mimis.exception.button.UnknownButtonException;
|
import mimis.exception.button.UnknownButtonException;
|
||||||
import mimis.exception.device.DeviceNotFoundException;
|
import mimis.exception.device.DeviceNotFoundException;
|
||||||
import mimis.exception.worker.ActivateException;
|
import mimis.exception.worker.ActivateException;
|
||||||
import mimis.macro.state.Hold;
|
|
||||||
import mimis.macro.state.Press;
|
import mimis.macro.state.Press;
|
||||||
import mimis.macro.state.Release;
|
import mimis.macro.state.Release;
|
||||||
import mimis.value.Action;
|
import mimis.value.Action;
|
||||||
@@ -56,17 +55,17 @@ public class WiimoteDevice extends Device implements GestureListener {
|
|||||||
}
|
}
|
||||||
wiimote.activateMotionSensing();
|
wiimote.activateMotionSensing();
|
||||||
|
|
||||||
add(
|
/*add(
|
||||||
new Hold(WiimoteButton.A),
|
new Hold(WiimoteButton.A),
|
||||||
new Task(Action.TRAIN),
|
new Task(Action.TRAIN),
|
||||||
new Task(Action.STOP));
|
new Task(Action.STOP));*/
|
||||||
add(
|
add(
|
||||||
new Press(WiimoteButton.B),
|
new Press(WiimoteButton.B),
|
||||||
new Task(Action.SAVE));
|
new Task(Action.SAVE));
|
||||||
add(
|
add(
|
||||||
new Press(WiimoteButton.DOWN),
|
new Press(WiimoteButton.DOWN),
|
||||||
new Task(Action.LOAD));
|
new Task(Action.LOAD));
|
||||||
add(
|
/*add(
|
||||||
new Hold(WiimoteButton.HOME),
|
new Hold(WiimoteButton.HOME),
|
||||||
new Task(Action.RECOGNIZE),
|
new Task(Action.RECOGNIZE),
|
||||||
new Task(Action.STOP));/*
|
new Task(Action.STOP));/*
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package mimis.event;
|
package mimis.event;
|
||||||
|
|
||||||
import mimis.Event;
|
import mimis.Event;
|
||||||
import mimis.event.task.Continuous;
|
|
||||||
import mimis.value.Action;
|
import mimis.value.Action;
|
||||||
|
|
||||||
public abstract class EventHandler extends EventListener {
|
public abstract class EventHandler extends EventListener {
|
||||||
@@ -12,7 +11,6 @@ public abstract class EventHandler extends EventListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void event(Event event) {
|
public void event(Event event) {
|
||||||
log.debug("aaa" + event);
|
|
||||||
if (event instanceof Feedback) {
|
if (event instanceof Feedback) {
|
||||||
feedback((Feedback) event);
|
feedback((Feedback) event);
|
||||||
} else if (event instanceof Task) {
|
} else if (event instanceof Task) {
|
||||||
@@ -23,18 +21,7 @@ public abstract class EventHandler extends EventListener {
|
|||||||
protected void feedback(Feedback feedback) {}
|
protected void feedback(Feedback feedback) {}
|
||||||
|
|
||||||
protected void task(Task task) {
|
protected void task(Task task) {
|
||||||
Action action = task.getAction();
|
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void action(Action action) {}
|
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