From af6dcc4a782a3e822f22b300f57a8488b2add38b Mon Sep 17 00:00:00 2001 From: Rik Veenboer Date: Mon, 28 May 2012 21:38:35 +0200 Subject: [PATCH] - --- cpp/mimis/.cproject | 891 ------------------ cpp/mimis/.project | 71 -- java/cfg/log4j.properties | 2 +- java/src/mimis/Application.java | 42 - java/src/mimis/Button.java | 6 +- java/src/mimis/Client.java | 30 +- java/src/mimis/Device.java | 45 - java/src/mimis/Event.java | 35 - java/src/mimis/GUI.java | 101 -- java/src/mimis/Gui.java | 106 +++ java/src/mimis/Main.java | 142 ++- java/src/mimis/Manager.java | 69 -- java/src/mimis/Mimis.java | 122 --- java/src/mimis/application/Application.java | 6 + .../application/PhotoViewerApplication.java | 2 +- .../mimis/application/TestApplication.java | 53 ++ .../mimis/application/cmd/CMDApplication.java | 4 +- .../gomplayer/GomPlayerApplication.java | 2 +- .../cmd/windows/winamp/WinampApplication.java | 2 +- .../cmd/windows/wmp/WMPApplication.java | 2 +- .../application/itunes/iTunesApplication.java | 6 +- .../application/lirc/LircApplication.java | 4 +- .../lirc/ipod/iPodApplication.java | 2 +- .../mimis/application/mpc/MPCApplication.java | 4 +- .../application/robot/RobotApplication.java | 4 +- .../mimis/application/vlc/VLCApplication.java | 4 +- java/src/mimis/device/Device.java | 5 + .../device/javainput/JavaInputDevice.java | 8 +- .../device/javainput/JavaInputListener.java | 2 +- .../javainput/extreme3d/Extreme3DDevice.java | 10 +- .../extreme3d/Extreme3DEventMapCycle.java | 70 -- .../extreme3d/Extreme3DTaskMapCycle.java | 70 ++ .../javainput/rumblepad/RumblepadDevice.java | 10 +- .../rumblepad/RumblepadEventMapCycle.java | 70 -- .../rumblepad/RumblepadTaskMapCycle.java | 70 ++ .../src/mimis/device/jintellitype/Hotkey.java | 2 + .../jintellitype/JIntellitypeDevice.java | 16 +- ...cle.java => JIntellitypeTaskMapCycle.java} | 30 +- .../mimis/device/jintellitype/Modifier.java | 3 +- java/src/mimis/device/lirc/LircDevice.java | 46 +- .../mimis/device/lirc/LircEventMapCycle.java | 33 - java/src/mimis/device/lirc/LircService.java | 2 +- .../mimis/device/lirc/LircTaskMapCycle.java | 19 + .../lirc/{remote => button}/ColorButton.java | 4 +- .../device/lirc/button/NumberButton.java | 7 + .../lirc/remote/DenonRC176EventMap.java | 38 +- .../lirc/remote/PhiliphsRCLE011EventMap.java | 38 +- .../remote/SamsungBN5901015AEventMap.java | 8 +- .../mimis/device/network/NetworkDevice.java | 27 +- java/src/mimis/device/panel/Panel.java | 5 +- java/src/mimis/device/panel/PanelDevice.java | 26 +- .../device/panel/PanelEventMapCycle.java | 33 - .../mimis/device/panel/PanelTaskMapCycle.java | 33 + .../mimis/device/wiimote/WiimoteDevice.java | 30 +- .../device/wiimote/WiimoteDiscovery.java | 2 +- .../device/wiimote/WiimoteEventMapCycle.java | 50 - .../device/wiimote/WiimoteTaskMapCycle.java | 50 + java/src/mimis/event/EventHandler.java | 43 - java/src/mimis/event/EventListener.java | 38 - java/src/mimis/event/EventRouter.java | 28 - java/src/mimis/event/Feedback.java | 12 - java/src/mimis/event/Task.java | 41 - .../TextFeedback.java => input/Feedback.java} | 13 +- java/src/mimis/input/Input.java | 5 + java/src/mimis/input/Task.java | 47 + .../mimis/{sequence => input}/state/Hold.java | 5 +- .../{sequence => input}/state/Press.java | 5 +- java/src/mimis/input/state/Release.java | 11 + java/src/mimis/input/state/State.java | 33 + .../{ => input/state/sequence}/Macro.java | 12 +- .../{ => input/state}/sequence/Sequence.java | 4 +- java/src/mimis/manager/ButtonManager.java | 52 + java/src/mimis/manager/Manager.java | 44 + java/src/mimis/manager/Titled.java | 2 +- java/src/mimis/manager/WorkerButton.java | 13 +- java/src/mimis/parser/Parser.java | 135 +++ java/src/mimis/parser/ParserInput.java | 42 + .../{event => }/router/GlobalRouter.java | 16 +- .../mimis/{event => }/router/LocalRouter.java | 0 java/src/mimis/router/Router.java | 75 ++ java/src/mimis/sequence/SequenceParser.java | 90 -- java/src/mimis/sequence/State.java | 19 - java/src/mimis/sequence/state/Release.java | 10 - .../src/mimis/{sequence => state}/Active.java | 13 +- .../EventMap.java => state/TaskMap.java} | 15 +- .../TaskMapCycle.java} | 7 +- java/src/mimis/todo/TODO | 7 - java/src/mimis/util/Multiplexer.java | 24 +- .../util/multiplexer/SignalListener.java | 4 +- java/src/mimis/value/Action.java | 17 +- java/src/mimis/value/Signal.java | 4 +- java/src/mimis/value/Target.java | 2 +- java/src/mimis/worker/Component.java | 102 ++ java/src/mimis/worker/Listener.java | 7 +- java/src/mimis/worker/Periodic.java | 1 - java/src/mimis/{ => worker}/Worker.java | 2 +- java/wiiuse.dll | Bin 80210 -> 80210 bytes 97 files changed, 1330 insertions(+), 2244 deletions(-) delete mode 100644 cpp/mimis/.cproject delete mode 100644 cpp/mimis/.project delete mode 100644 java/src/mimis/Application.java delete mode 100644 java/src/mimis/Device.java delete mode 100644 java/src/mimis/Event.java delete mode 100644 java/src/mimis/GUI.java create mode 100644 java/src/mimis/Gui.java delete mode 100644 java/src/mimis/Manager.java delete mode 100644 java/src/mimis/Mimis.java create mode 100644 java/src/mimis/application/Application.java create mode 100644 java/src/mimis/application/TestApplication.java create mode 100644 java/src/mimis/device/Device.java delete mode 100644 java/src/mimis/device/javainput/extreme3d/Extreme3DEventMapCycle.java create mode 100644 java/src/mimis/device/javainput/extreme3d/Extreme3DTaskMapCycle.java delete mode 100644 java/src/mimis/device/javainput/rumblepad/RumblepadEventMapCycle.java create mode 100644 java/src/mimis/device/javainput/rumblepad/RumblepadTaskMapCycle.java rename java/src/mimis/device/jintellitype/{JIntellitypeEventMapCycle.java => JIntellitypeTaskMapCycle.java} (51%) delete mode 100644 java/src/mimis/device/lirc/LircEventMapCycle.java create mode 100644 java/src/mimis/device/lirc/LircTaskMapCycle.java rename java/src/mimis/device/lirc/{remote => button}/ColorButton.java (69%) create mode 100644 java/src/mimis/device/lirc/button/NumberButton.java delete mode 100644 java/src/mimis/device/panel/PanelEventMapCycle.java create mode 100644 java/src/mimis/device/panel/PanelTaskMapCycle.java delete mode 100644 java/src/mimis/device/wiimote/WiimoteEventMapCycle.java create mode 100644 java/src/mimis/device/wiimote/WiimoteTaskMapCycle.java delete mode 100644 java/src/mimis/event/EventHandler.java delete mode 100644 java/src/mimis/event/EventListener.java delete mode 100644 java/src/mimis/event/EventRouter.java delete mode 100644 java/src/mimis/event/Feedback.java delete mode 100644 java/src/mimis/event/Task.java rename java/src/mimis/{event/feedback/TextFeedback.java => input/Feedback.java} (50%) create mode 100644 java/src/mimis/input/Input.java create mode 100644 java/src/mimis/input/Task.java rename java/src/mimis/{sequence => input}/state/Hold.java (56%) rename java/src/mimis/{sequence => input}/state/Press.java (56%) create mode 100644 java/src/mimis/input/state/Release.java create mode 100644 java/src/mimis/input/state/State.java rename java/src/mimis/{ => input/state/sequence}/Macro.java (87%) rename java/src/mimis/{ => input/state}/sequence/Sequence.java (78%) create mode 100644 java/src/mimis/manager/ButtonManager.java create mode 100644 java/src/mimis/manager/Manager.java create mode 100644 java/src/mimis/parser/Parser.java create mode 100644 java/src/mimis/parser/ParserInput.java rename java/src/mimis/{event => }/router/GlobalRouter.java (87%) rename java/src/mimis/{event => }/router/LocalRouter.java (100%) create mode 100644 java/src/mimis/router/Router.java delete mode 100644 java/src/mimis/sequence/SequenceParser.java delete mode 100644 java/src/mimis/sequence/State.java delete mode 100644 java/src/mimis/sequence/state/Release.java rename java/src/mimis/{sequence => state}/Active.java (56%) rename java/src/mimis/{sequence/EventMap.java => state/TaskMap.java} (66%) rename java/src/mimis/{device/EventMapCycle.java => state/TaskMapCycle.java} (59%) delete mode 100644 java/src/mimis/todo/TODO create mode 100644 java/src/mimis/worker/Component.java rename java/src/mimis/{ => worker}/Worker.java (95%) diff --git a/cpp/mimis/.cproject b/cpp/mimis/.cproject deleted file mode 100644 index e09c8b1..0000000 --- a/cpp/mimis/.cproject +++ /dev/null @@ -1,891 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/cpp/mimis/.project b/cpp/mimis/.project deleted file mode 100644 index 5d358ee..0000000 --- a/cpp/mimis/.project +++ /dev/null @@ -1,71 +0,0 @@ - - - Mimis JNI - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - ?name? - - - - org.eclipse.cdt.make.core.append_environment - true - - - org.eclipse.cdt.make.core.buildArguments - - - - org.eclipse.cdt.make.core.buildCommand - make - - - org.eclipse.cdt.make.core.buildLocation - ${workspace_loc:/Mimis JNI/Debug} - - - org.eclipse.cdt.make.core.contents - org.eclipse.cdt.make.core.activeConfigSettings - - - org.eclipse.cdt.make.core.enableAutoBuild - false - - - org.eclipse.cdt.make.core.enableCleanBuild - true - - - org.eclipse.cdt.make.core.enableFullBuild - true - - - org.eclipse.cdt.make.core.stopOnError - true - - - org.eclipse.cdt.make.core.useDefaultBuildCmd - true - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.core.ccnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/java/cfg/log4j.properties b/java/cfg/log4j.properties index f8a8ad4..0430f10 100644 --- a/java/cfg/log4j.properties +++ b/java/cfg/log4j.properties @@ -1,4 +1,4 @@ -log4j.rootLogger=TRACE, CA +log4j.rootLogger=DEBUG, CA log4j.appender.CA=org.apache.log4j.ConsoleAppender log4j.appender.CA.layout=org.apache.log4j.PatternLayout log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n \ No newline at end of file diff --git a/java/src/mimis/Application.java b/java/src/mimis/Application.java deleted file mode 100644 index f9c1dd2..0000000 --- a/java/src/mimis/Application.java +++ /dev/null @@ -1,42 +0,0 @@ -package mimis; - -import mimis.event.EventHandler; -import mimis.event.Task; -import mimis.event.feedback.TextFeedback; -import mimis.manager.Titled; -import mimis.value.Action; -import mimis.value.Signal; - -public abstract class Application extends EventHandler implements Titled { - protected String title; - protected boolean active; - - public Application(String title) { - this.title = title; - } - - public String title() { - return title; - } - - public void add(Event event) { - if (event instanceof Task) { - Task task = (Task) event; - Action action = task.getAction(); - switch (action) { - case START: - if (task.getSignal().equals(Signal.BEGIN)) { - if (active()) { - eventRouter.add(new TextFeedback("Stop application")); - stop(); - } else { - eventRouter.add(new TextFeedback("Start application")); - start(); - } - } - return; - } - } - super.event(event); - } -} \ No newline at end of file diff --git a/java/src/mimis/Button.java b/java/src/mimis/Button.java index 0fbafb8..6e26e42 100644 --- a/java/src/mimis/Button.java +++ b/java/src/mimis/Button.java @@ -1,3 +1,7 @@ package mimis; -public interface Button {} +import mimis.input.Input; + +public interface Button extends Input { + //public String getCode(); +} diff --git a/java/src/mimis/Client.java b/java/src/mimis/Client.java index 74ca389..1225539 100644 --- a/java/src/mimis/Client.java +++ b/java/src/mimis/Client.java @@ -1,14 +1,5 @@ package mimis; -import mimis.device.javainput.extreme3d.Extreme3DDevice; -import mimis.device.javainput.rumblepad.RumblepadDevice; -import mimis.device.jintellitype.JIntellitypeDevice; -import mimis.device.lirc.LircDevice; -import mimis.device.network.NetworkDevice; -import mimis.device.panel.PanelDevice; -import mimis.device.wiimote.WiimoteDevice; -import mimis.event.EventRouter; -import mimis.event.router.GlobalRouter; import mimis.util.swing.Dialog; import org.apache.commons.logging.Log; @@ -20,30 +11,13 @@ public class Client { public static final String IP = "127.0.0.1"; public static final int PORT = 6789; - protected EventRouter eventRouter; - protected Device[] deviceArray; - public Client(String ip, int port) { - eventRouter = new GlobalRouter(ip, port); - deviceArray = new Device[] { - new LircDevice(), - new WiimoteDevice(), - new PanelDevice(), - new JIntellitypeDevice(), - new RumblepadDevice(), - new Extreme3DDevice(), - new NetworkDevice()}; - } - - public void start() { - log.debug("Client"); - Mimis mimis = new Mimis(eventRouter, deviceArray); - mimis.start(); + //eventRouter = new GlobalRouter(ip, port); } public static void main(String[] args) { String ip = Dialog.question("Server IP:", IP); int port = Integer.valueOf(Dialog.question("Server Port:", PORT)); - new Client(ip, port).start(); + //new Client(ip, port).start(); } } diff --git a/java/src/mimis/Device.java b/java/src/mimis/Device.java deleted file mode 100644 index 09bd5e6..0000000 --- a/java/src/mimis/Device.java +++ /dev/null @@ -1,45 +0,0 @@ -package mimis; - -import mimis.event.EventHandler; -import mimis.exception.worker.DeactivateException; -import mimis.manager.Titled; -import mimis.sequence.EventMap; -import mimis.sequence.SequenceParser; -import mimis.sequence.State; - -public abstract class Device extends EventHandler implements Titled { - protected String title; - protected SequenceParser sequenceParser; - - public Device(String title) { - this.title = title; - sequenceParser = new SequenceParser(this); - } - - public String title() { - return title; - } - - /* Worker */ - protected void deactivate() throws DeactivateException { - super.deactivate(); - sequenceParser.reset(); - } - - /* SequenceParser */ - protected void add(EventMap eventMap) { - sequenceParser.add(eventMap); - } - - protected void remove(EventMap eventMap) { - sequenceParser.remove(eventMap); - } - - protected void reset() { - sequenceParser.reset(); - } - - protected void add(State state) { - sequenceParser.add(state); - } -} diff --git a/java/src/mimis/Event.java b/java/src/mimis/Event.java deleted file mode 100644 index 2aa9d98..0000000 --- a/java/src/mimis/Event.java +++ /dev/null @@ -1,35 +0,0 @@ -package mimis; - -import java.io.Serializable; - -import mimis.event.EventListener; -import mimis.value.Target; - -public class Event implements Serializable { - protected static final long serialVersionUID = 1L; - - protected Target target; - - public Event(Target target) { - this.target = target; - } - - public Target getTarget() { - return target; - } - - public boolean compatible(EventListener eventListener) { - switch (target) { - case ALL: - return true; - case MIMIS: - return eventListener instanceof Mimis; - case DEVICES: - return eventListener instanceof Device; - case APPLICATIONS: - return eventListener instanceof Application; - default: - return false; - } - } -} diff --git a/java/src/mimis/GUI.java b/java/src/mimis/GUI.java deleted file mode 100644 index 837c2ae..0000000 --- a/java/src/mimis/GUI.java +++ /dev/null @@ -1,101 +0,0 @@ -package mimis; - -import java.awt.GridLayout; -import java.awt.TextArea; -import java.awt.event.WindowEvent; - -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JToggleButton; -import javax.swing.SwingConstants; -import javax.swing.WindowConstants; - -import mimis.util.Swing; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -public class GUI extends JFrame { - protected static final long serialVersionUID = 1L; - protected Log log = LogFactory.getLog(getClass()); - - protected static final String TITLE = "MIMIS Manager"; - protected static final String APPLICATION_TITLE = "Applications"; - protected static final String DEVICE_TITLE = "Devices"; - - protected Mimis mimis; - protected TextArea textArea; - - public GUI(Mimis mimis, Manager applicationManager, Manager deviceManager) { - super(TITLE); - this.mimis = mimis; - setIconImage(Swing.getImage(Mimis.ICON)); - createFrame(applicationManager, deviceManager); - } - - protected void createFrame(Manager applicationManager, Manager deviceManager) { - setLayout(new GridLayout(0, 1)); - JPanel controlPanel = createControlPanel(applicationManager, deviceManager); - add(controlPanel); - JPanel feedbackPanel = createTextPanel(); - add(feedbackPanel); - setResizable(false); - setVisible(true); - setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); - pack(); - } - - protected JPanel createControlPanel(Manager applicationManager, Manager deviceManager) { - JPanel controlPanel = new JPanel(new GridLayout(1, 0)); - if (applicationManager.count() > 0) { - JPanel applicationPanel = createManagerPanel(applicationManager, APPLICATION_TITLE); - controlPanel.add(applicationPanel); - } - if (deviceManager.count() > 0) { - JPanel devicePanel = createManagerPanel(deviceManager, DEVICE_TITLE); - controlPanel.add(devicePanel); - } - return controlPanel; - } - - protected JPanel createManagerPanel(Manager manager, String title) { - JPanel panel = new JPanel(new GridLayout(0, 1)); - panel.add(new JLabel(title, SwingConstants.CENTER)); - for (JToggleButton button : manager.getButtons()) { - panel.add(button); - } - return panel; - } - - protected JPanel createTextPanel() { - JPanel textPanel = new JPanel(); - textArea = new TextArea(); - textArea.setEditable(false); - textPanel.add(textArea); - return textPanel; - } - - protected void processWindowEvent(WindowEvent event) { - if (event.getID() == WindowEvent.WINDOW_CLOSING) { - log.debug("Window closing"); - mimis.exit(); - } - } - - protected void stop() { - dispose(); - } - - public void write(String string) { - textArea.append(string); - } - - public void writeLine(String string) { - write(string + "\n"); - } - - public void clear() { - textArea.setText(null); - } -} diff --git a/java/src/mimis/Gui.java b/java/src/mimis/Gui.java new file mode 100644 index 0000000..97a0216 --- /dev/null +++ b/java/src/mimis/Gui.java @@ -0,0 +1,106 @@ +package mimis; + +import java.awt.GridLayout; +import java.awt.TextArea; +import java.awt.event.WindowEvent; + +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JToggleButton; +import javax.swing.SwingConstants; +import javax.swing.WindowConstants; + +import mimis.exception.worker.ActivateException; +import mimis.input.Feedback; +import mimis.input.Input; +import mimis.manager.ButtonManager; +import mimis.util.Swing; +import mimis.worker.Component; + +public class Gui extends Component { + public static final String ICON = "M.png"; + public static final String TITLE = "MIMIS Manager"; + + protected JFrame frame; + protected Component component; + protected TextArea textArea; + + public Gui(final Component component, ButtonManager... buttonManagerArray) { + frame = new JFrame(TITLE) { + protected static final long serialVersionUID = 1L; + protected void processWindowEvent(WindowEvent event) { + if (event.getID() == WindowEvent.WINDOW_CLOSING) { + log.debug("Window closing"); + component.exit(); + } + } + }; + this.component = component; + frame.setIconImage(Swing.getImage(ICON)); + createFrame(buttonManagerArray); + } + + public void activate() throws ActivateException { + listen(Feedback.class); + super.activate(); + } + + public void exit() { + super.exit(); + frame.dispose(); + } + + protected void createFrame(ButtonManager... buttonManagerArray) { + frame.setLayout(new GridLayout(0, 1)); + JPanel controlPanel = createControlPanel(buttonManagerArray); + frame.add(controlPanel); + JPanel feedbackPanel = createTextPanel(); + frame.add(feedbackPanel); + frame.setResizable(false); + frame.setVisible(true); + frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); + frame.pack(); + } + + protected JPanel createControlPanel(ButtonManager... buttonManagerArray) { + JPanel controlPanel = new JPanel(new GridLayout(1, 0)); + for (ButtonManager buttonManager : buttonManagerArray) { + if (buttonManager.count() > 0) { + JPanel panel = new JPanel(new GridLayout(0, 1)); + panel.add(new JLabel(buttonManager.getTitle(), SwingConstants.CENTER)); + for (JToggleButton button : buttonManager.getButtons()) { + panel.add(button); + } + controlPanel.add(panel); + } + } + return controlPanel; + } + + protected JPanel createTextPanel() { + JPanel textPanel = new JPanel(); + textArea = new TextArea(); + textArea.setEditable(false); + textPanel.add(textArea); + return textPanel; + } + + public void input(Input input) { + if (input instanceof Feedback) { + writeLine(((Feedback) input).getText()); + } + } + + public void write(String string) { + textArea.append(string); + } + + public void writeLine(String string) { + write(string + "\n"); + } + + public void clear() { + textArea.setText(null); + } +} diff --git a/java/src/mimis/Main.java b/java/src/mimis/Main.java index 61d640a..ede1320 100644 --- a/java/src/mimis/Main.java +++ b/java/src/mimis/Main.java @@ -1,61 +1,111 @@ package mimis; -import mimis.application.PhotoViewerApplication; -import mimis.application.cmd.windows.gomplayer.GomPlayerApplication; -import mimis.application.cmd.windows.winamp.WinampApplication; -import mimis.application.cmd.windows.wmp.WMPApplication; +import mimis.application.TestApplication; import mimis.application.itunes.iTunesApplication; -import mimis.application.lirc.ipod.iPodApplication; -import mimis.application.mpc.MPCApplication; -import mimis.application.vlc.VLCApplication; -import mimis.device.javainput.extreme3d.Extreme3DDevice; -import mimis.device.javainput.rumblepad.RumblepadDevice; -import mimis.device.jintellitype.JIntellitypeDevice; import mimis.device.lirc.LircDevice; -import mimis.device.network.NetworkDevice; import mimis.device.panel.PanelDevice; -import mimis.device.wiimote.WiimoteDevice; -import mimis.event.EventRouter; -import mimis.event.router.LocalRouter; +import mimis.exception.worker.ActivateException; +import mimis.exception.worker.DeactivateException; +import mimis.input.Feedback; +import mimis.input.Task; +import mimis.manager.ButtonManager; +import mimis.manager.Manager; +import mimis.parser.Parser; +import mimis.router.Router; +import mimis.util.ArrayCycle; +import mimis.value.Action; +import mimis.value.Target; +import mimis.worker.Component; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -public class Main { - protected Log log = LogFactory.getLog(getClass()); - - protected EventRouter eventRouter; - protected Application[] applicationArray; - protected Device[] deviceArray; +public class Main extends Component { + protected TestApplication app; + protected Manager manager; + protected ButtonManager applicationManager, deviceManager; + protected Gui gui; + protected ArrayCycle componentCycle; public Main() { - eventRouter = new LocalRouter(); - applicationArray = new Application[] { - new iTunesApplication(), - new GomPlayerApplication(), - new WMPApplication(), - new MPCApplication(), - new VLCApplication(), - new WinampApplication(), - new iPodApplication(), - new PhotoViewerApplication()}; - deviceArray = new Device[] { - new LircDevice(), - new WiimoteDevice(), - new PanelDevice(), - new JIntellitypeDevice(), - new RumblepadDevice(), - new Extreme3DDevice(), - new NetworkDevice()}; + this.router = new Router(); } - public void start() { - log.debug("Main"); - Mimis mimis = new Mimis(eventRouter, applicationArray, deviceArray); - mimis.start(); + public void activate() throws ActivateException { + /* Create gui from application and device managers */ + Component[] applicationArray = initialize(false, app = new TestApplication(), new iTunesApplication()); + applicationManager = new ButtonManager("Applications", applicationArray); + deviceManager = new ButtonManager("Devices", initialize(false, new PanelDevice(), new LircDevice())); + gui = new Gui(this, applicationManager, deviceManager); + + /* Create general manager */ + manager = new Manager(initialize(true, router, new Parser(), gui)); + + /* Start managers */ + applicationManager.start(); + deviceManager.start(); + manager.start(); + + /* Initialize component cycle */ + componentCycle = new ArrayCycle(applicationArray); + + listen(Task.class); + super.activate(); + + app.start(); + app.test(); + } + + protected void deactivate() throws DeactivateException { + super.deactivate(); + + log.debug("Stop managers"); + applicationManager.stop(); + deviceManager.stop(); + manager.stop(); + } + + public void exit() { + super.exit(); + + log.debug("Exit managers"); + applicationManager.exit(); + deviceManager.exit(); + manager.exit(); + } + + public Component[] initialize(boolean start, Component... componentArray) { + for (Component component : componentArray) { + component.setRouter(router); + if (start) { + component.start(); + } + } + return componentArray; + } + + public void task(Task task) { + if (task.getTarget().equals(Target.CURRENT)) { + componentCycle.current().add(task); + } else { + super.task(task); + } + } + + public void end(Action action) { + switch (action) { + case NEXT: + log.debug("Next component"); + route(new Feedback("Next component: " + componentCycle.next().getTitle())); + break; + case PREVIOUS: + log.debug("Previous component"); + route(new Feedback("Previous component: " + componentCycle.previous().getTitle())); + break; + case EXIT: + exit(); + break; + } } public static void main(String[] args) { - new Main().start(); + new Main().start(false); } } diff --git a/java/src/mimis/Manager.java b/java/src/mimis/Manager.java deleted file mode 100644 index 626deb7..0000000 --- a/java/src/mimis/Manager.java +++ /dev/null @@ -1,69 +0,0 @@ -package mimis; - -import java.util.Calendar; -import java.util.HashMap; -import java.util.Map; - -import javax.swing.JToggleButton; - -import mimis.exception.worker.DeactivateException; -import mimis.manager.WorkerButton; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -public class Manager extends Worker { - protected Log log = LogFactory.getLog(getClass()); - protected static final long serialVersionUID = 1L; - protected static final int INTERVAL = 1000; - - protected Worker[] workerArray; - protected Map buttonMap; - - public Manager(T[] workerArray) { - this.workerArray = workerArray; - createButtons(); - } - - protected void deactivate() throws DeactivateException { - super.deactivate(); - for (Worker manageable : workerArray) { - manageable.stop(); - } - } - - public void exit() { - super.exit(); - for (Worker manageable : workerArray) { - manageable.exit(); - } - } - - public int count() { - return workerArray.length; - } - - protected void createButtons() { - buttonMap = new HashMap(); - for (Worker manageable : workerArray) { - WorkerButton button = new WorkerButton(manageable); - buttonMap.put(manageable, button); - } - } - - protected JToggleButton[] getButtons() { - return buttonMap.values().toArray(new JToggleButton[]{}); - } - - protected void work() { - long before = Calendar.getInstance().getTimeInMillis(); - for (Worker manageable : workerArray) { - boolean active = manageable.active(); - WorkerButton button = buttonMap.get(manageable); - button.setPressed(active); - } - long after = Calendar.getInstance().getTimeInMillis(); - int sleep = INTERVAL - (int) (after - before); - sleep(sleep); - } -} \ No newline at end of file diff --git a/java/src/mimis/Mimis.java b/java/src/mimis/Mimis.java deleted file mode 100644 index 9bf0076..0000000 --- a/java/src/mimis/Mimis.java +++ /dev/null @@ -1,122 +0,0 @@ -package mimis; - -import mimis.event.EventHandler; -import mimis.event.EventRouter; -import mimis.event.Feedback; -import mimis.event.feedback.TextFeedback; -import mimis.exception.worker.ActivateException; -import mimis.exception.worker.DeactivateException; -import mimis.sequence.SequenceParser; -import mimis.util.ArrayCycle; -import mimis.value.Action; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -public class Mimis extends EventHandler { - protected Log log = LogFactory.getLog(getClass()); - public static final String ICON = "M.png"; - - protected ArrayCycle applicationCycle; - protected Device[] deviceArray; - protected Application[] applicationArray; - protected GUI gui; - - protected Manager applicationManager; - protected Manager deviceManager; - - public Mimis(EventRouter eventRouter) { - this(eventRouter, new Application[0], new Device[0]); - } - - public Mimis(EventRouter eventRouter, Application[] applicationArray) { - this(eventRouter, applicationArray, new Device[0]); - } - - public Mimis(EventRouter eventRouter, Device[] deviceArray) { - this(eventRouter, new Application[0], deviceArray); - } - - public Mimis(EventRouter eventRouter, Application[] applicationArray, Device[] deviceArray) { - this.applicationArray = applicationArray; - this.deviceArray = deviceArray; - applicationCycle = new ArrayCycle(applicationArray); - - log.debug("Initialise EventHandler and SequenceParser"); - EventHandler.initialise(eventRouter); - SequenceParser.initialise(eventRouter); - - log.debug("Add EventListeners to EventRouter"); - eventRouter.add(this); - eventRouter.add(applicationArray); - eventRouter.add(deviceArray); - - log.debug("Create managers"); - applicationManager = new Manager(applicationArray); - deviceManager = new Manager(deviceArray); - } - - protected void activate() throws ActivateException { - log.debug("Create gui"); - gui = new GUI(this, applicationManager, deviceManager); - - log.debug("Activate event router"); - eventRouter.start(); - - log.debug("Activate managers"); - applicationManager.start(); - deviceManager.start(); - - if (applicationCycle.size() > 0) { - log.debug("Initialise application cycle"); - eventRouter.set(applicationCycle.current()); - add(new TextFeedback("Current application: " + applicationCycle.current().title())); - } - super.activate(); - } - - protected void deactivate() throws DeactivateException { - super.deactivate(); - log.debug("Stop GUI"); - gui.stop(); - - log.debug("Stop event router"); - eventRouter.stop(); - - log.debug("Stop managers"); - applicationManager.stop(); - deviceManager.stop(); - } - - public void exit() { - super.exit(); - log.debug("Exit event router"); - eventRouter.exit(); - - log.debug("Exit managers"); - applicationManager.exit(); - deviceManager.exit(); - } - - protected void end(Action action) { - switch (action) { - case NEXT: - eventRouter.set(applicationCycle.next()); - add(new TextFeedback("Next application: " + applicationCycle.current().title())); - break; - case PREVIOUS: - eventRouter.set(applicationCycle.previous()); - add(new TextFeedback("Previous application: " + applicationCycle.current().title())); - break; - case EXIT: - exit(); - break; - } - } - - protected void feedback(Feedback feedback) { - if (feedback instanceof TextFeedback) { - gui.writeLine(((TextFeedback) feedback).getText()); - } - } -} diff --git a/java/src/mimis/application/Application.java b/java/src/mimis/application/Application.java new file mode 100644 index 0000000..747f4f6 --- /dev/null +++ b/java/src/mimis/application/Application.java @@ -0,0 +1,6 @@ +package mimis.application; + + +public interface Application { + +} diff --git a/java/src/mimis/application/PhotoViewerApplication.java b/java/src/mimis/application/PhotoViewerApplication.java index b397031..62b42b3 100644 --- a/java/src/mimis/application/PhotoViewerApplication.java +++ b/java/src/mimis/application/PhotoViewerApplication.java @@ -1,10 +1,10 @@ package mimis.application; -import mimis.Worker; import mimis.application.robot.RobotApplication; import mimis.exception.worker.DeactivateException; import mimis.value.Action; import mimis.value.Key; +import mimis.worker.Worker; public class PhotoViewerApplication extends RobotApplication { protected final static String TITLE = "Photo Viewer"; diff --git a/java/src/mimis/application/TestApplication.java b/java/src/mimis/application/TestApplication.java new file mode 100644 index 0000000..57635e6 --- /dev/null +++ b/java/src/mimis/application/TestApplication.java @@ -0,0 +1,53 @@ +package mimis.application; + +import mimis.device.lirc.button.ColorButton; +import mimis.device.wiimote.WiimoteButton; +import mimis.exception.worker.ActivateException; +import mimis.input.Input; +import mimis.input.Task; +import mimis.input.state.Hold; +import mimis.input.state.Press; +import mimis.input.state.Release; +import mimis.input.state.sequence.Sequence; +import mimis.parser.ParserInput; +import mimis.state.TaskMap; +import mimis.value.Action; +import mimis.value.Target; +import mimis.worker.Component; + +public class TestApplication extends Component { + public TestApplication() { + super("Test App"); + } + + public void activate() throws ActivateException { + TaskMap taskMap = new TaskMap(); + taskMap.add(new Sequence( + new Hold(ColorButton.BLUE), new Press(WiimoteButton.A), new Release(ColorButton.BLUE)), + new Task(Action.TEST, Target.CURRENT)); + route(new ParserInput(Action.ADD, taskMap)); + + listen(Task.class); + + super.activate(); + } + + public void test() { + while (!active()); + + route(new Press(ColorButton.BLUE)); + /*sleep(1000); + route(new ParserInput(Action.RESET, this, false));*/ + sleep(1000); + route(new Press(WiimoteButton.A)); + } + + public void input(Input input) { + if (input instanceof Task) { + Task task = (Task) input; + log.debug(task.getAction() + " " + task.getSignal() + " " + task.getTarget()); + } else { + log.debug(input.getClass()); + } + } +} diff --git a/java/src/mimis/application/cmd/CMDApplication.java b/java/src/mimis/application/cmd/CMDApplication.java index b5032a1..33ef615 100644 --- a/java/src/mimis/application/cmd/CMDApplication.java +++ b/java/src/mimis/application/cmd/CMDApplication.java @@ -3,13 +3,13 @@ package mimis.application.cmd; import java.io.IOException; import java.util.Map; -import mimis.Application; import mimis.exception.worker.ActivateException; import mimis.exception.worker.DeactivateException; import mimis.util.Native; import mimis.value.Registry; +import mimis.worker.Component; -public abstract class CMDApplication extends Application { +public abstract class CMDApplication extends Component { protected final static Registry REGISTRY = Registry.LOCAL_MACHINE; protected final static String KEY = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths"; diff --git a/java/src/mimis/application/cmd/windows/gomplayer/GomPlayerApplication.java b/java/src/mimis/application/cmd/windows/gomplayer/GomPlayerApplication.java index adaaf2f..984991a 100644 --- a/java/src/mimis/application/cmd/windows/gomplayer/GomPlayerApplication.java +++ b/java/src/mimis/application/cmd/windows/gomplayer/GomPlayerApplication.java @@ -1,11 +1,11 @@ package mimis.application.cmd.windows.gomplayer; -import mimis.Worker; import mimis.application.cmd.windows.WindowsApplication; import mimis.exception.worker.ActivateException; import mimis.exception.worker.DeactivateException; import mimis.value.Action; import mimis.value.Amount; +import mimis.worker.Worker; public class GomPlayerApplication extends WindowsApplication { protected final static String PROGRAM = "GOM.exe"; diff --git a/java/src/mimis/application/cmd/windows/winamp/WinampApplication.java b/java/src/mimis/application/cmd/windows/winamp/WinampApplication.java index 5a8bc3a..ac3320d 100644 --- a/java/src/mimis/application/cmd/windows/winamp/WinampApplication.java +++ b/java/src/mimis/application/cmd/windows/winamp/WinampApplication.java @@ -1,9 +1,9 @@ package mimis.application.cmd.windows.winamp; -import mimis.Worker; import mimis.application.cmd.windows.WindowsApplication; import mimis.exception.worker.DeactivateException; import mimis.value.Action; +import mimis.worker.Worker; public class WinampApplication extends WindowsApplication { protected final static String PROGRAM = "winamp.exe"; diff --git a/java/src/mimis/application/cmd/windows/wmp/WMPApplication.java b/java/src/mimis/application/cmd/windows/wmp/WMPApplication.java index 889ab24..3e605bd 100644 --- a/java/src/mimis/application/cmd/windows/wmp/WMPApplication.java +++ b/java/src/mimis/application/cmd/windows/wmp/WMPApplication.java @@ -1,8 +1,8 @@ package mimis.application.cmd.windows.wmp; -import mimis.Worker; import mimis.application.cmd.windows.WindowsApplication; import mimis.value.Action; +import mimis.worker.Worker; public class WMPApplication extends WindowsApplication { protected final static String PROGRAM = "wmplayer.exe"; diff --git a/java/src/mimis/application/itunes/iTunesApplication.java b/java/src/mimis/application/itunes/iTunesApplication.java index 80343c0..7e2ad4f 100644 --- a/java/src/mimis/application/itunes/iTunesApplication.java +++ b/java/src/mimis/application/itunes/iTunesApplication.java @@ -1,18 +1,18 @@ package mimis.application.itunes; -import mimis.Application; -import mimis.Worker; import mimis.exception.worker.ActivateException; import mimis.exception.worker.DeactivateException; import mimis.util.Native; import mimis.value.Action; +import mimis.worker.Component; +import mimis.worker.Worker; import com.dt.iTunesController.ITCOMDisabledReason; import com.dt.iTunesController.ITTrack; import com.dt.iTunesController.iTunes; import com.dt.iTunesController.iTunesEventsInterface; -public class iTunesApplication extends Application implements iTunesEventsInterface { +public class iTunesApplication extends Component implements iTunesEventsInterface { protected static final String TITLE = "iTunes"; protected static final String PROGRAM = "iTunes.exe"; protected static final boolean QUIT = false; diff --git a/java/src/mimis/application/lirc/LircApplication.java b/java/src/mimis/application/lirc/LircApplication.java index d792bfe..d20bbd9 100644 --- a/java/src/mimis/application/lirc/LircApplication.java +++ b/java/src/mimis/application/lirc/LircApplication.java @@ -1,13 +1,13 @@ package mimis.application.lirc; -import mimis.Application; import mimis.device.lirc.LircButton; import mimis.device.lirc.LircService; import mimis.device.lirc.remote.WC02IPOButton; import mimis.exception.worker.ActivateException; import mimis.exception.worker.DeactivateException; +import mimis.worker.Component; -public class LircApplication extends Application { +public class LircApplication extends Component { protected LircService lircService; public LircApplication(String title) { diff --git a/java/src/mimis/application/lirc/ipod/iPodApplication.java b/java/src/mimis/application/lirc/ipod/iPodApplication.java index be42ce2..aad0b3d 100644 --- a/java/src/mimis/application/lirc/ipod/iPodApplication.java +++ b/java/src/mimis/application/lirc/ipod/iPodApplication.java @@ -1,11 +1,11 @@ package mimis.application.lirc.ipod; -import mimis.Worker; import mimis.application.lirc.LircApplication; import mimis.device.lirc.remote.WC02IPOButton; import mimis.exception.worker.ActivateException; import mimis.exception.worker.DeactivateException; import mimis.value.Action; +import mimis.worker.Worker; public class iPodApplication extends LircApplication { protected static final String TITLE = "iPod"; diff --git a/java/src/mimis/application/mpc/MPCApplication.java b/java/src/mimis/application/mpc/MPCApplication.java index fee4686..9edf401 100644 --- a/java/src/mimis/application/mpc/MPCApplication.java +++ b/java/src/mimis/application/mpc/MPCApplication.java @@ -1,8 +1,8 @@ package mimis.application.mpc; -import mimis.Worker; import mimis.application.cmd.windows.WindowsApplication; import mimis.value.Action; +import mimis.worker.Worker; public class MPCApplication extends WindowsApplication { protected final static String PROGRAM = "mpc-hc.exe"; @@ -68,7 +68,7 @@ public class MPCApplication extends WindowsApplication { } } - public String title() { + public String getTitle() { return TITLE; } diff --git a/java/src/mimis/application/robot/RobotApplication.java b/java/src/mimis/application/robot/RobotApplication.java index 8119096..4a84408 100644 --- a/java/src/mimis/application/robot/RobotApplication.java +++ b/java/src/mimis/application/robot/RobotApplication.java @@ -3,11 +3,11 @@ package mimis.application.robot; import java.awt.AWTException; import java.awt.Robot; -import mimis.Application; import mimis.exception.worker.ActivateException; import mimis.value.Key; +import mimis.worker.Component; -public class RobotApplication extends Application { +public class RobotApplication extends Component { protected Robot robot; public RobotApplication(String title) { diff --git a/java/src/mimis/application/vlc/VLCApplication.java b/java/src/mimis/application/vlc/VLCApplication.java index 2ad1809..48871ab 100644 --- a/java/src/mimis/application/vlc/VLCApplication.java +++ b/java/src/mimis/application/vlc/VLCApplication.java @@ -7,7 +7,6 @@ import java.net.URL; import java.util.regex.Matcher; import java.util.regex.Pattern; -import mimis.Worker; import mimis.application.cmd.CMDApplication; import mimis.exception.worker.ActivateException; import mimis.exception.worker.DeactivateException; @@ -15,6 +14,7 @@ import mimis.util.Native; import mimis.value.Action; import mimis.value.Amount; import mimis.value.Registry; +import mimis.worker.Worker; public class VLCApplication extends CMDApplication { protected final static Registry REGISTRY = Registry.CLASSES_ROOT; @@ -151,7 +151,7 @@ public class VLCApplication extends CMDApplication { return (muted = !muted) ? 0 : volume; } - public String title() { + public String getTitle() { return TITLE; } diff --git a/java/src/mimis/device/Device.java b/java/src/mimis/device/Device.java new file mode 100644 index 0000000..42d01c5 --- /dev/null +++ b/java/src/mimis/device/Device.java @@ -0,0 +1,5 @@ +package mimis.device; + +public interface Device { + +} diff --git a/java/src/mimis/device/javainput/JavaInputDevice.java b/java/src/mimis/device/javainput/JavaInputDevice.java index ff9106b..7f8e726 100644 --- a/java/src/mimis/device/javainput/JavaInputDevice.java +++ b/java/src/mimis/device/javainput/JavaInputDevice.java @@ -1,22 +1,22 @@ package mimis.device.javainput; import mimis.Button; -import mimis.Device; import mimis.exception.ButtonException; import mimis.exception.button.UnknownButtonException; import mimis.exception.button.UnknownDirectionException; import mimis.exception.device.DeviceNotFoundException; import mimis.exception.worker.ActivateException; import mimis.exception.worker.DeactivateException; -import mimis.sequence.state.Press; -import mimis.sequence.state.Release; +import mimis.input.state.Press; +import mimis.input.state.Release; +import mimis.worker.Component; import de.hardcode.jxinput.JXInputDevice; import de.hardcode.jxinput.JXInputManager; import de.hardcode.jxinput.event.JXInputAxisEvent; import de.hardcode.jxinput.event.JXInputButtonEvent; import de.hardcode.jxinput.event.JXInputDirectionalEvent; -public abstract class JavaInputDevice extends Device { +public abstract class JavaInputDevice extends Component { protected String name; public JavaInputDevice(String title, String name) { diff --git a/java/src/mimis/device/javainput/JavaInputListener.java b/java/src/mimis/device/javainput/JavaInputListener.java index 34c4b89..f439d5e 100644 --- a/java/src/mimis/device/javainput/JavaInputListener.java +++ b/java/src/mimis/device/javainput/JavaInputListener.java @@ -3,8 +3,8 @@ package mimis.device.javainput; import java.util.LinkedList; import java.util.Queue; -import mimis.Worker; import mimis.exception.ButtonException; +import mimis.worker.Worker; import de.hardcode.jxinput.Button; import de.hardcode.jxinput.Directional; import de.hardcode.jxinput.JXInputDevice; diff --git a/java/src/mimis/device/javainput/extreme3d/Extreme3DDevice.java b/java/src/mimis/device/javainput/extreme3d/Extreme3DDevice.java index 54d4b37..c6a8572 100644 --- a/java/src/mimis/device/javainput/extreme3d/Extreme3DDevice.java +++ b/java/src/mimis/device/javainput/extreme3d/Extreme3DDevice.java @@ -13,18 +13,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; + protected static Extreme3DTaskMapCycle taskMapCycle; public Extreme3DDevice() { super(TITLE, NAME); - eventMapCycle = new Extreme3DEventMapCycle(); + taskMapCycle = new Extreme3DTaskMapCycle(); } protected void activate() throws ActivateException { super.activate(); - add(eventMapCycle.mimis); - add(eventMapCycle.player); - add(eventMapCycle.like); + add(taskMapCycle.mimis); + add(taskMapCycle.player); + add(taskMapCycle.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 deleted file mode 100644 index 9c3a64d..0000000 --- a/java/src/mimis/device/javainput/extreme3d/Extreme3DEventMapCycle.java +++ /dev/null @@ -1,70 +0,0 @@ -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/extreme3d/Extreme3DTaskMapCycle.java b/java/src/mimis/device/javainput/extreme3d/Extreme3DTaskMapCycle.java new file mode 100644 index 0000000..0fd6528 --- /dev/null +++ b/java/src/mimis/device/javainput/extreme3d/Extreme3DTaskMapCycle.java @@ -0,0 +1,70 @@ +package mimis.device.javainput.extreme3d; + +import mimis.device.javainput.DirectionButton; +import mimis.input.Task; +import mimis.input.state.Press; +import mimis.state.TaskMap; +import mimis.state.TaskMapCycle; +import mimis.value.Action; +import mimis.value.Target; + +public class Extreme3DTaskMapCycle extends TaskMapCycle { + protected static final long serialVersionUID = 1L; + + public TaskMap mimis, player, like; + + public Extreme3DTaskMapCycle() { + /* Mimis */ + mimis = new TaskMap(); + mimis.add( + new Press(Extreme3DButton.SEVEN), + new Task(Action.PREVIOUS, Target.MAIN)); + mimis.add( + new Press(Extreme3DButton.EIGHT), + new Task(Action.NEXT, Target.MAIN)); + add(mimis); + + /* Player */ + player = new TaskMap(); + player.add( + new Press(Extreme3DButton.ONE), + new Task(Action.PLAY, Target.CURRENT)); + player.add( + new Press(Extreme3DButton.TWO), + new Task(Action.MUTE, Target.CURRENT)); + player.add( + new Press(Extreme3DButton.NINE), + new Task(Action.SHUFFLE, Target.CURRENT)); + player.add( + new Press(Extreme3DButton.TEN), + new Task(Action.REPEAT, Target.CURRENT)); + player.add( + new Press(Extreme3DButton.SIX), + new Task(Action.NEXT, Target.CURRENT)); + player.add( + new Press(Extreme3DButton.FOUR), + new Task(Action.PREVIOUS, Target.CURRENT)); + player.add( + new Press(Extreme3DButton.FIVE), + new Task(Action.FORWARD, Target.CURRENT)); + player.add( + new Press(Extreme3DButton.THREE), + new Task(Action.REWIND, Target.CURRENT)); + player.add( + new Press(DirectionButton.SOUTH), + new Task(Action.VOLUME_DOWN, Target.CURRENT)); + player.add( + new Press(DirectionButton.NORTH), + new Task(Action.VOLUME_UP, Target.CURRENT)); + add(player); + + like = new TaskMap(); + like.add( + new Press(Extreme3DButton.ELEVEN), + new Task(Action.LIKE, Target.CURRENT)); + like.add( + new Press(Extreme3DButton.TWELVE), + new Task(Action.DISLIKE, Target.CURRENT)); + add(like); + } +} diff --git a/java/src/mimis/device/javainput/rumblepad/RumblepadDevice.java b/java/src/mimis/device/javainput/rumblepad/RumblepadDevice.java index e9ebe6f..12e3a70 100644 --- a/java/src/mimis/device/javainput/rumblepad/RumblepadDevice.java +++ b/java/src/mimis/device/javainput/rumblepad/RumblepadDevice.java @@ -13,18 +13,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; + protected static RumblepadTaskMapCycle taskMapCycle; public RumblepadDevice() { super(TITLE, NAME); - eventMapCycle = new RumblepadEventMapCycle(); + taskMapCycle = new RumblepadTaskMapCycle(); } protected void activate() throws ActivateException { super.activate(); - add(eventMapCycle.mimis); - add(eventMapCycle.player); - add(eventMapCycle.like); + add(taskMapCycle.mimis); + add(taskMapCycle.player); + add(taskMapCycle.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 deleted file mode 100644 index a3fe7f3..0000000 --- a/java/src/mimis/device/javainput/rumblepad/RumblepadEventMapCycle.java +++ /dev/null @@ -1,70 +0,0 @@ -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/device/javainput/rumblepad/RumblepadTaskMapCycle.java b/java/src/mimis/device/javainput/rumblepad/RumblepadTaskMapCycle.java new file mode 100644 index 0000000..8c3f15a --- /dev/null +++ b/java/src/mimis/device/javainput/rumblepad/RumblepadTaskMapCycle.java @@ -0,0 +1,70 @@ +package mimis.device.javainput.rumblepad; + +import mimis.device.javainput.DirectionButton; +import mimis.input.Task; +import mimis.input.state.Press; +import mimis.state.TaskMap; +import mimis.state.TaskMapCycle; +import mimis.value.Action; +import mimis.value.Target; + +public class RumblepadTaskMapCycle extends TaskMapCycle { + protected static final long serialVersionUID = 1L; + + public TaskMap mimis, player, like; + + public RumblepadTaskMapCycle() { + /* Mimis */ + mimis = new TaskMap(); + mimis.add( + new Press(RumblepadButton.ONE), + new Task(Action.PREVIOUS, Target.MAIN)); + mimis.add( + new Press(RumblepadButton.THREE), + new Task(Action.NEXT, Target.MAIN)); + add(mimis); + + /* Player */ + player = new TaskMap(); + player.add( + new Press(DirectionButton.WEST), + new Task(Action.PLAY, Target.CURRENT)); + player.add( + new Press(DirectionButton.EAST), + new Task(Action.MUTE, Target.CURRENT)); + player.add( + new Press(RumblepadButton.NINE), + new Task(Action.SHUFFLE, Target.CURRENT)); + player.add( + new Press(RumblepadButton.TEN), + new Task(Action.REPEAT, Target.CURRENT)); + player.add( + new Press(RumblepadButton.EIGHT), + new Task(Action.NEXT, Target.CURRENT)); + player.add( + new Press(RumblepadButton.SIX), + new Task(Action.PREVIOUS, Target.CURRENT)); + player.add( + new Press(RumblepadButton.SEVEN), + new Task(Action.FORWARD, Target.CURRENT)); + player.add( + new Press(RumblepadButton.FIVE), + new Task(Action.REWIND, Target.CURRENT)); + player.add( + new Press(DirectionButton.SOUTH), + new Task(Action.VOLUME_DOWN, Target.CURRENT)); + player.add( + new Press(DirectionButton.NORTH), + new Task(Action.VOLUME_UP, Target.CURRENT)); + add(player); + + like = new TaskMap(); + like.add( + new Press(RumblepadButton.FOUR), + new Task(Action.LIKE, Target.CURRENT)); + like.add( + new Press(RumblepadButton.TWO), + new Task(Action.DISLIKE, Target.CURRENT)); + add(like); + } +} diff --git a/java/src/mimis/device/jintellitype/Hotkey.java b/java/src/mimis/device/jintellitype/Hotkey.java index a0bfe9b..1f3d877 100644 --- a/java/src/mimis/device/jintellitype/Hotkey.java +++ b/java/src/mimis/device/jintellitype/Hotkey.java @@ -9,6 +9,8 @@ import com.melloware.jintellitype.JIntellitype; public class Hotkey implements Button { + protected static final long serialVersionUID = 1L; + protected static ArrayList hotkeyList; protected static JIntellitype jit; diff --git a/java/src/mimis/device/jintellitype/JIntellitypeDevice.java b/java/src/mimis/device/jintellitype/JIntellitypeDevice.java index 8bc97c8..02d609d 100644 --- a/java/src/mimis/device/jintellitype/JIntellitypeDevice.java +++ b/java/src/mimis/device/jintellitype/JIntellitypeDevice.java @@ -2,21 +2,21 @@ package mimis.device.jintellitype; import java.util.ArrayList; -import mimis.Device; import mimis.exception.button.UnknownButtonException; import mimis.exception.worker.ActivateException; import mimis.exception.worker.DeactivateException; -import mimis.sequence.state.Press; -import mimis.sequence.state.Release; +import mimis.input.state.Press; +import mimis.input.state.Release; +import mimis.worker.Component; import com.melloware.jintellitype.HotkeyListener; import com.melloware.jintellitype.IntellitypeListener; import com.melloware.jintellitype.JIntellitype; -public class JIntellitypeDevice extends Device implements HotkeyListener, IntellitypeListener { +public class JIntellitypeDevice extends Component implements HotkeyListener, IntellitypeListener { protected static final String TITLE = "Keyboard"; - protected JIntellitypeEventMapCycle eventMapCycle; + protected JIntellitypeTaskMapCycle taskMapCycle; protected ArrayList hotkeyList; protected JIntellitype jit; @@ -25,15 +25,15 @@ public class JIntellitypeDevice extends Device implements HotkeyListener, Intell hotkeyList = new ArrayList(); jit = JIntellitype.getInstance(); Hotkey.initialise(hotkeyList, jit); - eventMapCycle = new JIntellitypeEventMapCycle(); + taskMapCycle = new JIntellitypeTaskMapCycle(); } protected void activate() throws ActivateException { super.activate(); jit.addHotKeyListener(this); jit.addIntellitypeListener(this); - add(eventMapCycle.mimis); - add(eventMapCycle.player); + add(taskMapCycle.mimis); + add(taskMapCycle.player); } public void onIntellitype(int command) { diff --git a/java/src/mimis/device/jintellitype/JIntellitypeEventMapCycle.java b/java/src/mimis/device/jintellitype/JIntellitypeTaskMapCycle.java similarity index 51% rename from java/src/mimis/device/jintellitype/JIntellitypeEventMapCycle.java rename to java/src/mimis/device/jintellitype/JIntellitypeTaskMapCycle.java index 2627025..6bb7cca 100644 --- a/java/src/mimis/device/jintellitype/JIntellitypeEventMapCycle.java +++ b/java/src/mimis/device/jintellitype/JIntellitypeTaskMapCycle.java @@ -1,45 +1,45 @@ package mimis.device.jintellitype; -import mimis.device.EventMapCycle; -import mimis.event.Task; -import mimis.sequence.EventMap; +import mimis.input.Task; +import mimis.state.TaskMap; +import mimis.state.TaskMapCycle; import mimis.value.Action; import mimis.value.Key; import mimis.value.Target; -public class JIntellitypeEventMapCycle extends EventMapCycle { +public class JIntellitypeTaskMapCycle extends TaskMapCycle { protected static final long serialVersionUID = 1L; - public EventMap mimis, player; + public TaskMap mimis, player; - public JIntellitypeEventMapCycle() { + public JIntellitypeTaskMapCycle() { /* Mimis */ - mimis = new EventMap(); + mimis = new TaskMap(); mimis.add( new Hotkey(Key.PRIOR), - new Task(Target.MIMIS, Action.PREVIOUS)); + new Task(Action.PREVIOUS, Target.MAIN)); mimis.add( new Hotkey(Key.NEXT), - new Task(Target.MIMIS, Action.NEXT)); + new Task(Action.NEXT, Target.MAIN)); add(mimis); /* Player */ - player = new EventMap(); + player = new TaskMap(); player.add( CommandButton.VOLUME_DOWN, - new Task(Target.APPLICATIONS, Action.VOLUME_DOWN)); + new Task(Action.VOLUME_DOWN, Target.APPLICATIONS)); player.add( CommandButton.VOLUME_UP, - new Task(Target.APPLICATIONS, Action.VOLUME_UP)); + new Task(Action.VOLUME_UP, Target.APPLICATIONS)); player.add( new Hotkey(Modifier.CTRL | Modifier.WIN, 'x'), - new Task(Target.MIMIS, Action.EXIT)); + new Task(Action.EXIT, Target.MAIN)); player.add( new Hotkey(Modifier.CTRL | Modifier.SHIFT | Modifier.WIN, 'n'), - new Task(Target.APPLICATION, Action.NEXT)); + new Task(Action.NEXT, Target.CURRENT)); player.add( new Hotkey(Modifier.CTRL | Modifier.SHIFT | Modifier.WIN, 'p'), - new Task(Target.APPLICATION, Action.PREVIOUS)); + new Task(Action.PREVIOUS, Target.CURRENT)); add(player); } } diff --git a/java/src/mimis/device/jintellitype/Modifier.java b/java/src/mimis/device/jintellitype/Modifier.java index 3ff5a6b..c4ef6d9 100644 --- a/java/src/mimis/device/jintellitype/Modifier.java +++ b/java/src/mimis/device/jintellitype/Modifier.java @@ -4,8 +4,9 @@ import mimis.Button; import com.melloware.jintellitype.JIntellitype; - public class Modifier implements Button { + protected static final long serialVersionUID = 1L; + public static final int ALT = JIntellitype.MOD_ALT, CTRL = JIntellitype.MOD_CONTROL, diff --git a/java/src/mimis/device/lirc/LircDevice.java b/java/src/mimis/device/lirc/LircDevice.java index 01e85a1..014777d 100644 --- a/java/src/mimis/device/lirc/LircDevice.java +++ b/java/src/mimis/device/lirc/LircDevice.java @@ -1,43 +1,47 @@ package mimis.device.lirc; import mimis.Button; -import mimis.Device; +import mimis.device.lirc.button.ColorButton; +import mimis.device.lirc.button.NumberButton; import mimis.device.lirc.remote.DenonRC176Button; import mimis.device.lirc.remote.PhiliphsRCLE011Button; import mimis.device.lirc.remote.SamsungBN5901015AButton; import mimis.exception.worker.ActivateException; import mimis.exception.worker.DeactivateException; -import mimis.sequence.state.Press; -import mimis.sequence.state.Release; +import mimis.input.state.Press; +import mimis.input.state.Release; +import mimis.parser.ParserInput; import mimis.util.Multiplexer; import mimis.util.Native; import mimis.util.multiplexer.SignalListener; +import mimis.value.Action; import mimis.value.Signal; +import mimis.worker.Component; -public class LircDevice extends Device implements LircButtonListener, SignalListener { +public class LircDevice extends Component implements LircButtonListener, SignalListener