From 7589708783a9b107ca44f7fecd0045e66eeea6ed Mon Sep 17 00:00:00 2001 From: Bram Veenboer Date: Wed, 8 Jun 2011 08:45:17 +0000 Subject: [PATCH] Eventmaps voor de Rumblepad en Extreme3D toegevoegd. Bug verholpen die error tot gevolg had bij onsuccesvolle verbinding met een JavaInputDevice. De acties worden nu ook in het feedback scherm getoond. De Rumblepad werkt uitstekend, bij de Extreme3D werken alleen Directionals, hoe kan dat? --- .../device/javainput/JavaInputDevice.java | 3 +- .../javainput/extreme3d/Extreme3DDevice.java | 33 ++------- .../extreme3d/Extreme3DEventMapCycle.java | 70 +++++++++++++++++++ .../javainput/rumblepad/RumblepadDevice.java | 37 ++-------- .../rumblepad/RumblepadEventMapCycle.java | 70 +++++++++++++++++++ java/src/mimis/event/router/LocalRouter.java | 7 ++ 6 files changed, 162 insertions(+), 58 deletions(-) create mode 100644 java/src/mimis/device/javainput/extreme3d/Extreme3DEventMapCycle.java create mode 100644 java/src/mimis/device/javainput/rumblepad/RumblepadEventMapCycle.java 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) {