From 56967b97a7e73a2fed18fc36665f6d246f502c9e Mon Sep 17 00:00:00 2001 From: Rik Veenboer Date: Sun, 4 Mar 2012 11:38:04 +0000 Subject: [PATCH] Kleine aanpassingen. Lirc kan nu gestart worden via de GUI. --- .../mimis/application/cmd/CMDApplication.java | 44 +++++++++++-------- .../application/itunes/iTunesApplication.java | 6 +-- .../device/javainput/JavaInputDevice.java | 11 ++--- .../javainput/extreme3d/Extreme3DDevice.java | 7 +-- .../javainput/rumblepad/RumblepadDevice.java | 7 +-- .../jintellitype/JIntellitypeDevice.java | 16 ++++--- java/src/mimis/device/lirc/LircDevice.java | 31 +++++++------ .../mimis/device/network/NetworkDevice.java | 3 +- java/src/mimis/device/panel/PanelDevice.java | 6 +-- .../mimis/device/wiimote/WiimoteDevice.java | 22 +++++----- .../device/wiimote/WiimoteTaskMapCycle.java | 2 +- java/src/mimis/worker/Component.java | 6 +++ java/src/mimis/worker/Worker.java | 1 - 13 files changed, 92 insertions(+), 70 deletions(-) diff --git a/java/src/mimis/application/cmd/CMDApplication.java b/java/src/mimis/application/cmd/CMDApplication.java index 0b9c5d5..0f0653e 100644 --- a/java/src/mimis/application/cmd/CMDApplication.java +++ b/java/src/mimis/application/cmd/CMDApplication.java @@ -16,39 +16,47 @@ public abstract class CMDApplication extends Component { protected String program; protected String title; protected Process process; + protected boolean detect, running; public CMDApplication(String program, String title) { super(title); this.program = program; this.title = title; + detect = true; } protected void activate() throws ActivateException { + detect = true; + if (!running) { + String path = getPath(); + if (path == null) { + throw new ActivateException(); + } + try { + String command = path.startsWith("\"") ? path : String.format("\"%s\"", path); + command = replaceVariables(command); + process = Runtime.getRuntime().exec(command); + } catch (IOException e) { + log.error(e); + throw new ActivateException(); + } + } super.activate(); - String path = getPath(); - if (path == null) { - throw new ActivateException(); - } - try { - String command = path.startsWith("\"") ? path : String.format("\"%s\"", path); - command = replaceVariables(command); - process = Runtime.getRuntime().exec(command); - } catch (IOException e) { - log.error(e); - throw new ActivateException(); - } } public boolean active() { - boolean running = Native.isRunning(program); - if (!active && running) { - active = true; - start(); + if (detect) { + running = Native.isRunning(program); + if (!active && running) { + active = true; + start(); + } } - return active = running; + return active; } - protected synchronized void deactivate() throws DeactivateException { + protected synchronized void deactivate() throws DeactivateException { + detect = false; super.deactivate(); if (process != null) { process.destroy(); diff --git a/java/src/mimis/application/itunes/iTunesApplication.java b/java/src/mimis/application/itunes/iTunesApplication.java index 3da5bd8..1ee756e 100644 --- a/java/src/mimis/application/itunes/iTunesApplication.java +++ b/java/src/mimis/application/itunes/iTunesApplication.java @@ -1,5 +1,6 @@ package mimis.application.itunes; +import mimis.application.Application; import mimis.exception.worker.ActivateException; import mimis.exception.worker.DeactivateException; import mimis.value.Action; @@ -11,7 +12,7 @@ import com.dt.iTunesController.ITTrack; import com.dt.iTunesController.iTunes; import com.dt.iTunesController.iTunesEventsInterface; -public class iTunesApplication extends Component implements iTunesEventsInterface { +public class iTunesApplication extends Component implements Application, iTunesEventsInterface { protected static final String TITLE = "iTunes"; protected static final boolean EVENTS = false; @@ -22,7 +23,7 @@ public class iTunesApplication extends Component implements iTunesEventsInterfac protected iTunes iTunes; protected VolumeWorker volumeWorker; - protected boolean events, handle; + protected boolean events; public iTunesApplication() { this(EVENTS); @@ -32,7 +33,6 @@ public class iTunesApplication extends Component implements iTunesEventsInterfac super(TITLE); this.events = events; volumeWorker = new VolumeWorker(); - handle = false; } protected synchronized void activate() throws ActivateException { diff --git a/java/src/mimis/device/javainput/JavaInputDevice.java b/java/src/mimis/device/javainput/JavaInputDevice.java index 7f8e726..d9f6049 100644 --- a/java/src/mimis/device/javainput/JavaInputDevice.java +++ b/java/src/mimis/device/javainput/JavaInputDevice.java @@ -1,6 +1,7 @@ package mimis.device.javainput; import mimis.Button; +import mimis.device.Device; import mimis.exception.ButtonException; import mimis.exception.button.UnknownButtonException; import mimis.exception.button.UnknownDirectionException; @@ -16,7 +17,7 @@ import de.hardcode.jxinput.event.JXInputAxisEvent; import de.hardcode.jxinput.event.JXInputButtonEvent; import de.hardcode.jxinput.event.JXInputDirectionalEvent; -public abstract class JavaInputDevice extends Component { +public abstract class JavaInputDevice extends Component implements Device { protected String name; public JavaInputDevice(String title, String name) { @@ -50,9 +51,9 @@ public abstract class JavaInputDevice extends Component { public void processEvent(JXInputButtonEvent event) throws ButtonException { Button button = getButton(event); if (event.getButton().getState()) { - add(new Press(button)); + route(new Press(button)); } else { - add(new Release(button)); + route(new Release(button)); } } @@ -60,10 +61,10 @@ public abstract class JavaInputDevice extends Component { Button button = getButton(event); if (event.getDirectional().isCentered()) { if (previousDirectionalButton != null) { - add(new Release(previousDirectionalButton)); + route(new Release(previousDirectionalButton)); } } else { - add(new Press(button)); + route(new Press(button)); previousDirectionalButton = button; } } diff --git a/java/src/mimis/device/javainput/extreme3d/Extreme3DDevice.java b/java/src/mimis/device/javainput/extreme3d/Extreme3DDevice.java index c6a8572..a5fe185 100644 --- a/java/src/mimis/device/javainput/extreme3d/Extreme3DDevice.java +++ b/java/src/mimis/device/javainput/extreme3d/Extreme3DDevice.java @@ -6,6 +6,7 @@ import mimis.device.javainput.JavaInputDevice; import mimis.exception.button.UnknownButtonException; import mimis.exception.button.UnknownDirectionException; import mimis.exception.worker.ActivateException; +import mimis.value.Action; import de.hardcode.jxinput.event.JXInputButtonEvent; import de.hardcode.jxinput.event.JXInputDirectionalEvent; @@ -22,9 +23,9 @@ public class Extreme3DDevice extends JavaInputDevice { protected void activate() throws ActivateException { super.activate(); - add(taskMapCycle.mimis); - add(taskMapCycle.player); - add(taskMapCycle.like); + parser(Action.ADD, taskMapCycle.mimis); + parser(Action.ADD, taskMapCycle.player); + parser(Action.ADD, taskMapCycle.like); } protected Button getButton(JXInputButtonEvent event) throws UnknownButtonException { diff --git a/java/src/mimis/device/javainput/rumblepad/RumblepadDevice.java b/java/src/mimis/device/javainput/rumblepad/RumblepadDevice.java index 12e3a70..7286849 100644 --- a/java/src/mimis/device/javainput/rumblepad/RumblepadDevice.java +++ b/java/src/mimis/device/javainput/rumblepad/RumblepadDevice.java @@ -6,6 +6,7 @@ import mimis.device.javainput.JavaInputDevice; import mimis.exception.button.UnknownButtonException; import mimis.exception.button.UnknownDirectionException; import mimis.exception.worker.ActivateException; +import mimis.value.Action; import de.hardcode.jxinput.event.JXInputButtonEvent; import de.hardcode.jxinput.event.JXInputDirectionalEvent; @@ -22,9 +23,9 @@ public class RumblepadDevice extends JavaInputDevice { protected void activate() throws ActivateException { super.activate(); - add(taskMapCycle.mimis); - add(taskMapCycle.player); - add(taskMapCycle.like); + parser(Action.ADD, taskMapCycle.mimis); + parser(Action.ADD, taskMapCycle.player); + parser(Action.ADD, taskMapCycle.like); } protected Button getButton(JXInputButtonEvent event) throws UnknownButtonException { diff --git a/java/src/mimis/device/jintellitype/JIntellitypeDevice.java b/java/src/mimis/device/jintellitype/JIntellitypeDevice.java index 02d609d..f6e1e40 100644 --- a/java/src/mimis/device/jintellitype/JIntellitypeDevice.java +++ b/java/src/mimis/device/jintellitype/JIntellitypeDevice.java @@ -2,18 +2,20 @@ package mimis.device.jintellitype; import java.util.ArrayList; +import mimis.device.Device; import mimis.exception.button.UnknownButtonException; import mimis.exception.worker.ActivateException; import mimis.exception.worker.DeactivateException; import mimis.input.state.Press; import mimis.input.state.Release; +import mimis.value.Action; import mimis.worker.Component; import com.melloware.jintellitype.HotkeyListener; import com.melloware.jintellitype.IntellitypeListener; import com.melloware.jintellitype.JIntellitype; -public class JIntellitypeDevice extends Component implements HotkeyListener, IntellitypeListener { +public class JIntellitypeDevice extends Component implements Device, HotkeyListener, IntellitypeListener { protected static final String TITLE = "Keyboard"; protected JIntellitypeTaskMapCycle taskMapCycle; @@ -32,16 +34,16 @@ public class JIntellitypeDevice extends Component implements HotkeyListener, Int super.activate(); jit.addHotKeyListener(this); jit.addIntellitypeListener(this); - add(taskMapCycle.mimis); - add(taskMapCycle.player); + parser(Action.ADD, taskMapCycle.mimis); + parser(Action.ADD, taskMapCycle.player); } public void onIntellitype(int command) { if (active) { try { CommandButton commandButton = CommandButton.create(command); - add(new Press(commandButton)); - add(new Release(commandButton)); + route(new Press(commandButton)); + route(new Release(commandButton)); } catch (UnknownButtonException e) { log.error(e); } @@ -51,8 +53,8 @@ public class JIntellitypeDevice extends Component implements HotkeyListener, Int public void onHotKey(int id) { if (active) { Hotkey hotkey = hotkeyList.get(id); - add(new Press(hotkey)); - add(new Release(hotkey)); + route(new Press(hotkey)); + route(new Release(hotkey)); } } diff --git a/java/src/mimis/device/lirc/LircDevice.java b/java/src/mimis/device/lirc/LircDevice.java index 5e82f73..de72cd4 100644 --- a/java/src/mimis/device/lirc/LircDevice.java +++ b/java/src/mimis/device/lirc/LircDevice.java @@ -1,6 +1,8 @@ package mimis.device.lirc; import mimis.Button; +import mimis.application.cmd.CMDApplication; +import mimis.device.Device; import mimis.device.lirc.button.ColorButton; import mimis.device.lirc.button.NumberButton; import mimis.device.lirc.remote.DenonRC176Button; @@ -10,24 +12,22 @@ import mimis.exception.worker.ActivateException; import mimis.exception.worker.DeactivateException; 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 Component implements LircButtonListener, SignalListener