diff --git a/java/src/mimis/device/javainput/JavaInputDevice.java b/java/src/mimis/device/javainput/JavaInputDevice.java index 3a28e85..481608b 100644 --- a/java/src/mimis/device/javainput/JavaInputDevice.java +++ b/java/src/mimis/device/javainput/JavaInputDevice.java @@ -35,6 +35,7 @@ public abstract class JavaInputDevice extends Device { log.debug(jxinputDevice); javaInputListener = new JavaInputListener(this, jxinputDevice); } catch (DeviceNotFoundException e) { + active = false; throw new ActivateException(); } javaInputListener.activate(); @@ -47,7 +48,7 @@ public abstract class JavaInputDevice extends Device { } public void processEvent(JXInputAxisEvent event) { - log.trace("JXInputAxisEvent: " + event); + //log.trace("JXInputAxisEvent: " + event); } public void processEvent(JXInputButtonEvent event) throws ButtonException { diff --git a/java/src/mimis/device/javainput/extreme3d/Extreme3DDevice.java b/java/src/mimis/device/javainput/extreme3d/Extreme3DDevice.java index 21c2be4..37ef2df 100644 --- a/java/src/mimis/device/javainput/extreme3d/Extreme3DDevice.java +++ b/java/src/mimis/device/javainput/extreme3d/Extreme3DDevice.java @@ -1,19 +1,12 @@ package mimis.device.javainput.extreme3d; import mimis.Button; -import mimis.Macro; import mimis.device.javainput.DirectionButton; import mimis.device.javainput.JavaInputDevice; -import mimis.event.Task; -import mimis.exception.MacroException; import mimis.exception.button.UnknownButtonException; import mimis.exception.button.UnknownDirectionException; import mimis.exception.worker.ActivateException; -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; import de.hardcode.jxinput.event.JXInputDirectionalEvent; @@ -21,30 +14,18 @@ public class Extreme3DDevice extends JavaInputDevice { protected static final String TITLE = "Extreme 3D"; protected static final String NAME = "Logitech Extreme 3D"; + protected static Extreme3DEventMapCycle eventMapCycle; + public Extreme3DDevice() { super(TITLE, NAME); + eventMapCycle = new Extreme3DEventMapCycle(); } public void activate() throws ActivateException { super.activate(); - try { - add( - new Press(Extreme3DButton.TWELVE), - new Task(Target.APPLICATION, Action.TEST)); - add( - new Macro( - new Hold(Extreme3DButton.ONE), - new Press(Extreme3DButton.TWO), - new Press(Extreme3DButton.ELEVEN), - new Release(Extreme3DButton.ONE)), - new Task(Target.MIMIS, Action.EXIT)); - } catch (MacroException e) { - log.error(e); - } - } - - public void initialise() { - + add(eventMapCycle.mimis); + add(eventMapCycle.player); + add(eventMapCycle.like); } protected Button getButton(JXInputButtonEvent event) throws UnknownButtonException { diff --git a/java/src/mimis/device/javainput/extreme3d/Extreme3DEventMapCycle.java b/java/src/mimis/device/javainput/extreme3d/Extreme3DEventMapCycle.java new file mode 100644 index 0000000..9c3a64d --- /dev/null +++ b/java/src/mimis/device/javainput/extreme3d/Extreme3DEventMapCycle.java @@ -0,0 +1,70 @@ +package mimis.device.javainput.extreme3d; + +import mimis.device.EventMapCycle; +import mimis.device.javainput.DirectionButton; +import mimis.event.Task; +import mimis.sequence.EventMap; +import mimis.sequence.state.Press; +import mimis.value.Action; +import mimis.value.Target; + +public class Extreme3DEventMapCycle extends EventMapCycle { + protected static final long serialVersionUID = 1L; + + public EventMap mimis, player, like; + + public Extreme3DEventMapCycle() { + /* Mimis */ + mimis = new EventMap(); + mimis.add( + new Press(Extreme3DButton.SEVEN), + new Task(Target.MIMIS, Action.PREVIOUS)); + mimis.add( + new Press(Extreme3DButton.EIGHT), + new Task(Target.MIMIS, Action.NEXT)); + add(mimis); + + /* Player */ + player = new EventMap(); + player.add( + new Press(Extreme3DButton.ONE), + new Task(Target.APPLICATION, Action.PLAY)); + player.add( + new Press(Extreme3DButton.TWO), + new Task(Target.APPLICATION, Action.MUTE)); + player.add( + new Press(Extreme3DButton.NINE), + new Task(Target.APPLICATION, Action.SHUFFLE)); + player.add( + new Press(Extreme3DButton.TEN), + new Task(Target.APPLICATION, Action.REPEAT)); + player.add( + new Press(Extreme3DButton.SIX), + new Task(Target.APPLICATION, Action.NEXT)); + player.add( + new Press(Extreme3DButton.FOUR), + new Task(Target.APPLICATION, Action.PREVIOUS)); + player.add( + new Press(Extreme3DButton.FIVE), + new Task(Target.APPLICATION, Action.FORWARD)); + player.add( + new Press(Extreme3DButton.THREE), + new Task(Target.APPLICATION, Action.REWIND)); + player.add( + new Press(DirectionButton.SOUTH), + new Task(Target.APPLICATION, Action.VOLUME_DOWN)); + player.add( + new Press(DirectionButton.NORTH), + new Task(Target.APPLICATION, Action.VOLUME_UP)); + add(player); + + like = new EventMap(); + like.add( + new Press(Extreme3DButton.ELEVEN), + new Task(Target.APPLICATION, Action.LIKE)); + like.add( + new Press(Extreme3DButton.TWELVE), + new Task(Target.APPLICATION, Action.DISLIKE)); + add(like); + } +} diff --git a/java/src/mimis/device/javainput/rumblepad/RumblepadDevice.java b/java/src/mimis/device/javainput/rumblepad/RumblepadDevice.java index 5b0f8ec..64ebc8a 100644 --- a/java/src/mimis/device/javainput/rumblepad/RumblepadDevice.java +++ b/java/src/mimis/device/javainput/rumblepad/RumblepadDevice.java @@ -3,13 +3,9 @@ package mimis.device.javainput.rumblepad; import mimis.Button; import mimis.device.javainput.DirectionButton; import mimis.device.javainput.JavaInputDevice; -import mimis.event.Task; import mimis.exception.button.UnknownButtonException; import mimis.exception.button.UnknownDirectionException; import mimis.exception.worker.ActivateException; -import mimis.sequence.state.Press; -import mimis.value.Action; -import mimis.value.Target; import de.hardcode.jxinput.event.JXInputButtonEvent; import de.hardcode.jxinput.event.JXInputDirectionalEvent; @@ -18,39 +14,18 @@ public class RumblepadDevice extends JavaInputDevice { protected static final String TITLE = "RumblePad"; protected static final String NAME = "Logitech RumblePad 2 USB"; + protected static RumblepadEventMapCycle eventMapCycle; + public RumblepadDevice() { super(TITLE, NAME); + eventMapCycle = new RumblepadEventMapCycle(); } public void activate() throws ActivateException { super.activate(); - add( - new Press(RumblepadButton.ONE), - new Task(Target.APPLICATION, Action.PLAY)); - add( - new Press(RumblepadButton.TWO), - new Task(Target.APPLICATION, Action.PAUSE)); - add( - new Press(RumblepadButton.THREE), - new Task(Target.APPLICATION, Action.RESUME)); - add( - new Press(RumblepadButton.SIX), - new Task(Target.MIMIS, Action.NEXT)); - add( - new Press(RumblepadButton.EIGHT), - new Task(Target.MIMIS, Action.PREVIOUS)); - /*add( - new Hold(RumblepadButton.FIVE), - new Dynamic(Action.FORWARD, Target.APPLICATION, 200, -30)); - add( - new Hold(RumblepadButton.SEVEN), - new Dynamic(Action.REWIND, Target.APPLICATION, 200, -30)); - add( - new Hold(RumblepadButton.NINE), - new Continuous(Action.VOLUME_DOWN, Target.APPLICATION, 100)); - add( - new Hold(RumblepadButton.TEN), - new Continuous(Action.VOLUME_UP, Target.APPLICATION, 100));*/ + add(eventMapCycle.mimis); + add(eventMapCycle.player); + add(eventMapCycle.like); } protected Button getButton(JXInputButtonEvent event) throws UnknownButtonException { diff --git a/java/src/mimis/device/javainput/rumblepad/RumblepadEventMapCycle.java b/java/src/mimis/device/javainput/rumblepad/RumblepadEventMapCycle.java new file mode 100644 index 0000000..a3fe7f3 --- /dev/null +++ b/java/src/mimis/device/javainput/rumblepad/RumblepadEventMapCycle.java @@ -0,0 +1,70 @@ +package mimis.device.javainput.rumblepad; + +import mimis.device.EventMapCycle; +import mimis.device.javainput.DirectionButton; +import mimis.event.Task; +import mimis.sequence.EventMap; +import mimis.sequence.state.Press; +import mimis.value.Action; +import mimis.value.Target; + +public class RumblepadEventMapCycle extends EventMapCycle { + protected static final long serialVersionUID = 1L; + + public EventMap mimis, player, like; + + public RumblepadEventMapCycle() { + /* Mimis */ + mimis = new EventMap(); + mimis.add( + new Press(RumblepadButton.ONE), + new Task(Target.MIMIS, Action.PREVIOUS)); + mimis.add( + new Press(RumblepadButton.THREE), + new Task(Target.MIMIS, Action.NEXT)); + add(mimis); + + /* Player */ + player = new EventMap(); + player.add( + new Press(DirectionButton.WEST), + new Task(Target.APPLICATION, Action.PLAY)); + player.add( + new Press(DirectionButton.EAST), + new Task(Target.APPLICATION, Action.MUTE)); + player.add( + new Press(RumblepadButton.NINE), + new Task(Target.APPLICATION, Action.SHUFFLE)); + player.add( + new Press(RumblepadButton.TEN), + new Task(Target.APPLICATION, Action.REPEAT)); + player.add( + new Press(RumblepadButton.EIGHT), + new Task(Target.APPLICATION, Action.NEXT)); + player.add( + new Press(RumblepadButton.SIX), + new Task(Target.APPLICATION, Action.PREVIOUS)); + player.add( + new Press(RumblepadButton.SEVEN), + new Task(Target.APPLICATION, Action.FORWARD)); + player.add( + new Press(RumblepadButton.FIVE), + new Task(Target.APPLICATION, Action.REWIND)); + player.add( + new Press(DirectionButton.SOUTH), + new Task(Target.APPLICATION, Action.VOLUME_DOWN)); + player.add( + new Press(DirectionButton.NORTH), + new Task(Target.APPLICATION, Action.VOLUME_UP)); + add(player); + + like = new EventMap(); + like.add( + new Press(RumblepadButton.FOUR), + new Task(Target.APPLICATION, Action.LIKE)); + like.add( + new Press(RumblepadButton.TWO), + new Task(Target.APPLICATION, Action.DISLIKE)); + add(like); + } +} diff --git a/java/src/mimis/event/router/LocalRouter.java b/java/src/mimis/event/router/LocalRouter.java index 83c8024..bc0a631 100644 --- a/java/src/mimis/event/router/LocalRouter.java +++ b/java/src/mimis/event/router/LocalRouter.java @@ -1,8 +1,10 @@ package mimis.event.router; import mimis.Event; +import mimis.event.Task; import mimis.event.EventListener; import mimis.event.EventRouter; +import mimis.feedback.TextFeedback; import mimis.value.Target; public class LocalRouter extends EventRouter { @@ -13,6 +15,11 @@ public class LocalRouter extends EventRouter { if (application != null) { application.add(event); } + if (event instanceof Task) { + Task task = (Task) event; + add(new TextFeedback("Action: " + task.getAction())); + + } break; default: for (EventListener eventListener : eventListenerList) {