diff --git a/java/cfg/log4j.properties b/java/cfg/log4j.properties index 0430f10..f8a8ad4 100644 --- a/java/cfg/log4j.properties +++ b/java/cfg/log4j.properties @@ -1,4 +1,4 @@ -log4j.rootLogger=DEBUG, CA +log4j.rootLogger=TRACE, 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 index 29c9d71..09330b5 100644 --- a/java/src/mimis/Application.java +++ b/java/src/mimis/Application.java @@ -1,8 +1,11 @@ package mimis; import mimis.event.EventHandler; +import mimis.event.Task; +import mimis.exception.WorkerException; import mimis.exception.worker.DeactivateException; import mimis.manager.Titled; +import mimis.value.Action; public abstract class Application extends EventHandler implements Titled, Exitable { protected String title; @@ -10,13 +13,34 @@ public abstract class Application extends EventHandler implements Titled, Exitab public Application(String title) { this.title = title; - active = false; + //initialise(); } 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 ACTIVATE: + try { + if (active()) { + deactivate(); + } else { + activate(); + } + } catch (WorkerException e) { + log.error(e); + } + return; + } + } + super.event(event); + } + public void stop() { if (active()) { try { diff --git a/java/src/mimis/Device.java b/java/src/mimis/Device.java index 0883468..ddc4ef3 100644 --- a/java/src/mimis/Device.java +++ b/java/src/mimis/Device.java @@ -4,6 +4,7 @@ import mimis.event.EventHandler; import mimis.event.Task; import mimis.event.task.Continuous; import mimis.event.task.Stopper; +import mimis.exception.worker.ActivateException; import mimis.exception.worker.DeactivateException; import mimis.macro.Sequence; import mimis.macro.SequenceListener; @@ -15,21 +16,15 @@ import mimis.manager.Titled; public abstract class Device extends EventHandler implements Titled, Exitable { protected String title; - protected boolean active; protected SequenceListener sequenceListener; - static { - SequenceListener.initialise(eventRouter); - } - public Device(String title) { this.title = title; } - - public void start() { - log.fatal("start"); + + public void activate() throws ActivateException { + super.activate(); sequenceListener = new SequenceListener(this); - super.start(); } /* Register macro's */ diff --git a/java/src/mimis/GUI.java b/java/src/mimis/GUI.java index 72f5714..1173966 100644 --- a/java/src/mimis/GUI.java +++ b/java/src/mimis/GUI.java @@ -4,10 +4,10 @@ import java.awt.GridLayout; import java.awt.TextArea; import java.awt.event.WindowEvent; +import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; -import javax.swing.JToggleButton; import javax.swing.SwingConstants; import javax.swing.WindowConstants; @@ -55,7 +55,7 @@ public class GUI extends JFrame { 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()) { + for (JButton button : manager.getButtons()) { panel.add(button); } return panel; @@ -84,7 +84,11 @@ public class GUI extends JFrame { 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 b04a679..9ccd0d3 100644 --- a/java/src/mimis/Main.java +++ b/java/src/mimis/Main.java @@ -20,7 +20,6 @@ import mimis.exception.worker.ActivateException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; - public class Main { protected Log log = LogFactory.getLog(getClass()); diff --git a/java/src/mimis/Manager.java b/java/src/mimis/Manager.java index cac6132..d4d74a4 100644 --- a/java/src/mimis/Manager.java +++ b/java/src/mimis/Manager.java @@ -4,7 +4,7 @@ import java.util.Calendar; import java.util.HashMap; import java.util.Map; -import javax.swing.JToggleButton; +import javax.swing.JButton; import mimis.manager.SelectButton; import mimis.manager.Titled; @@ -19,10 +19,6 @@ public class Manager extends Worker { protected T[] manageableArray; protected Map> buttonMap; - - public Manager(String title) { - log.debug("Manager constructed"); - } public Manager(T[] manageableArray) { this.manageableArray = manageableArray; @@ -30,7 +26,6 @@ public class Manager extends Worker { } public void stop() { - super.stop(); for (T manageable : manageableArray) { manageable.stop(); } @@ -45,15 +40,17 @@ public class Manager extends Worker { } } - protected JToggleButton[] getButtons() { - return buttonMap.values().toArray(new JToggleButton[]{}); + protected JButton[] getButtons() { + return buttonMap.values().toArray(new JButton[]{}); } protected void work() { long before = Calendar.getInstance().getTimeInMillis(); for (T manageable : manageableArray) { boolean active = manageable.active(); - buttonMap.get(manageable).setPressed(active); + //buttonMap.get(manageable).getModel().setArmed(active); + + buttonMap.get(manageable).getModel().setPressed(active); } long after = Calendar.getInstance().getTimeInMillis(); int sleep = INTERVAL - (int) (after - before); diff --git a/java/src/mimis/Mimis.java b/java/src/mimis/Mimis.java index 3feed6d..8c7ff3d 100644 --- a/java/src/mimis/Mimis.java +++ b/java/src/mimis/Mimis.java @@ -5,6 +5,7 @@ import mimis.event.EventRouter; import mimis.event.Feedback; import mimis.exception.worker.ActivateException; import mimis.feedback.TextFeedback; +import mimis.macro.SequenceListener; import mimis.util.ArrayCycle; import mimis.value.Action; @@ -35,16 +36,28 @@ public class Mimis extends EventHandler { } public Mimis(EventRouter eventRouter, Application[] applicationArray, Device[] deviceArray) { - EventHandler.initialise(eventRouter); - applicationManager = new Manager(applicationArray); - deviceManager = new Manager(deviceArray); - this.applicationArray = applicationArray; this.deviceArray = deviceArray; applicationCycle = new ArrayCycle(applicationArray); + + log.debug("Initialise EventHandler and SequenceListener"); + EventHandler.initialise(eventRouter); + SequenceListener.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); } public void activate() throws ActivateException { + log.debug("Activate event router"); + eventRouter.activate(); + log.debug("Activate managers"); applicationManager.activate(); deviceManager.activate(); @@ -85,10 +98,10 @@ public class Mimis extends EventHandler { break; } } - + protected void feedback(Feedback feedback) { if (feedback instanceof TextFeedback) { - gui.write(((TextFeedback) feedback).getText()); + gui.writeLine(((TextFeedback) feedback).getText()); } } } diff --git a/java/src/mimis/Worker.java b/java/src/mimis/Worker.java index 13bfaad..0809283 100644 --- a/java/src/mimis/Worker.java +++ b/java/src/mimis/Worker.java @@ -16,7 +16,6 @@ public abstract class Worker implements Runnable { protected boolean active = false; public void start(boolean thread) { - log.trace("Start"); running = true; if (thread) { log.debug("Start thread"); @@ -69,10 +68,10 @@ public abstract class Worker implements Runnable { } public void activate(boolean thread) { + active = true; if (!running) { start(thread); } - active = true; synchronized (this) { notifyAll(); } diff --git a/java/src/mimis/application/cmd/windows/WindowsApplication.java b/java/src/mimis/application/cmd/windows/WindowsApplication.java index 5231cb7..a9664d6 100644 --- a/java/src/mimis/application/cmd/windows/WindowsApplication.java +++ b/java/src/mimis/application/cmd/windows/WindowsApplication.java @@ -24,6 +24,7 @@ public abstract class WindowsApplication extends CMDApplication { public void activate() throws ActivateException { handle = Windows.findWindow(name, null); + log.info(handle); if (handle < 1) { super.activate(); sleep(START_SLEEP); @@ -34,7 +35,11 @@ public abstract class WindowsApplication extends CMDApplication { throw new ActivateException(); } } - + + public boolean active() { + return (handle = Windows.findWindow(name, null)) > 0; + } + protected void command(Command command) { Windows.sendMessage(handle, Windows.WM_APPCOMMAND, handle, command.getCode() << 16); } diff --git a/java/src/mimis/application/cmd/windows/winamp/WinampApplication.java b/java/src/mimis/application/cmd/windows/winamp/WinampApplication.java index 738eb78..a4ec4a2 100644 --- a/java/src/mimis/application/cmd/windows/winamp/WinampApplication.java +++ b/java/src/mimis/application/cmd/windows/winamp/WinampApplication.java @@ -40,6 +40,7 @@ public class WinampApplication extends WindowsApplication { } public void action(Action action) { + log.fatal(handle); log.trace("WinampApplication: " + action); switch (action) { case PLAY: diff --git a/java/src/mimis/application/itunes/iTunesApplication.java b/java/src/mimis/application/itunes/iTunesApplication.java index 61c1ded..faca1a3 100644 --- a/java/src/mimis/application/itunes/iTunesApplication.java +++ b/java/src/mimis/application/itunes/iTunesApplication.java @@ -57,6 +57,7 @@ public class iTunesApplication extends Application implements iTunesEventsInterf protected void action(Action action) { log.trace("iTunesApplication: " + action); + if (!active) return; switch (action) { case PLAY: iTunes.playPause(); diff --git a/java/src/mimis/device/javainput/JavaInputDevice.java b/java/src/mimis/device/javainput/JavaInputDevice.java index 7914c47..6fe02ee 100644 --- a/java/src/mimis/device/javainput/JavaInputDevice.java +++ b/java/src/mimis/device/javainput/JavaInputDevice.java @@ -18,17 +18,22 @@ import de.hardcode.jxinput.event.JXInputButtonEvent; import de.hardcode.jxinput.event.JXInputDirectionalEvent; public abstract class JavaInputDevice extends Device { - public JavaInputDevice(String title) { + protected String name; + + public JavaInputDevice(String title, String name) { super(title); + this.name = name; } protected JavaInputListener javaInputListener; protected Button previousDirectionalButton; - public void activate(String name) throws ActivateException { - log.fatal("act"); + public void activate() throws ActivateException { + super.activate(); try { - javaInputListener = new JavaInputListener(this, getDevice(name)); + JXInputDevice jxinputDevice = getDevice(name); + log.debug(jxinputDevice); + javaInputListener = new JavaInputListener(this, jxinputDevice); } catch (DeviceNotFoundException e) { throw new ActivateException(); } diff --git a/java/src/mimis/device/javainput/extreme3d/Extreme3DDevice.java b/java/src/mimis/device/javainput/extreme3d/Extreme3DDevice.java index 69ac8ab..b70779d 100644 --- a/java/src/mimis/device/javainput/extreme3d/Extreme3DDevice.java +++ b/java/src/mimis/device/javainput/extreme3d/Extreme3DDevice.java @@ -8,6 +8,7 @@ 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.macro.state.Hold; import mimis.macro.state.Press; import mimis.macro.state.Release; @@ -17,14 +18,15 @@ import de.hardcode.jxinput.event.JXInputButtonEvent; import de.hardcode.jxinput.event.JXInputDirectionalEvent; public class Extreme3DDevice extends JavaInputDevice { + protected static final String TITLE = "Extreme 3D"; protected static final String NAME = "Logitech Extreme 3D"; public Extreme3DDevice() { - super(NAME); + super(TITLE, NAME); } - public void start() { - super.start(); + public void activate() throws ActivateException { + super.activate(); try { add( new Press(Extreme3DButton.TWELVE), diff --git a/java/src/mimis/device/javainput/rumblepad/RumblepadButton.java b/java/src/mimis/device/javainput/rumblepad/RumblepadButton.java index 5449659..182d18d 100644 --- a/java/src/mimis/device/javainput/rumblepad/RumblepadButton.java +++ b/java/src/mimis/device/javainput/rumblepad/RumblepadButton.java @@ -5,16 +5,16 @@ import mimis.exception.button.UnknownButtonException; import de.hardcode.jxinput.event.JXInputButtonEvent; public enum RumblepadButton implements Button { - ONE ("SelectButton 0"), - TWO ("SelectButton 1"), - THREE ("SelectButton 2"), - FOUR ("SelectButton 3"), - FIVE ("SelectButton 4"), - SIX ("SelectButton 5"), - SEVEN ("SelectButton 6"), - EIGHT ("SelectButton 7"), - NINE ("SelectButton 8"), - TEN ("SelectButton 9"); + ONE ("Button 0"), + TWO ("Button 1"), + THREE ("Button 2"), + FOUR ("Button 3"), + FIVE ("Button 4"), + SIX ("Button 5"), + SEVEN ("Button 6"), + EIGHT ("Button 7"), + NINE ("Button 8"), + TEN ("Button 9"); protected String code; diff --git a/java/src/mimis/device/javainput/rumblepad/RumblepadDevice.java b/java/src/mimis/device/javainput/rumblepad/RumblepadDevice.java index 95193a8..dbdec33 100644 --- a/java/src/mimis/device/javainput/rumblepad/RumblepadDevice.java +++ b/java/src/mimis/device/javainput/rumblepad/RumblepadDevice.java @@ -17,20 +17,15 @@ import de.hardcode.jxinput.event.JXInputButtonEvent; import de.hardcode.jxinput.event.JXInputDirectionalEvent; public class RumblepadDevice extends JavaInputDevice { + protected static final String TITLE = "RumblePad"; protected static final String NAME = "Logitech RumblePad 2 USB"; public RumblepadDevice() { - super(NAME); + super(TITLE, NAME); } public void activate() throws ActivateException { super.activate(); - start(); - } - - public void start() { - log.fatal("start"); - add( new Press(RumblepadButton.ONE), new Task(Target.APPLICATION, Action.PLAY)); @@ -58,7 +53,6 @@ public class RumblepadDevice extends JavaInputDevice { add( new Hold(RumblepadButton.TEN), new Continuous(Action.VOLUME_UP, Target.APPLICATION, 100)); - super.start(); } protected Button getButton(JXInputButtonEvent event) throws UnknownButtonException { diff --git a/java/src/mimis/device/jintellitype/Hotkey.java b/java/src/mimis/device/jintellitype/Hotkey.java index d4e263a..a0bfe9b 100644 --- a/java/src/mimis/device/jintellitype/Hotkey.java +++ b/java/src/mimis/device/jintellitype/Hotkey.java @@ -34,6 +34,10 @@ public class Hotkey implements Button { this(key.getCode()); } + public Hotkey(int modifier, Key key) { + this(modifier, key.getCode()); + } + public static void initialise(ArrayList actionList, JIntellitype jit) { Hotkey.hotkeyList = actionList; Hotkey.jit = jit; diff --git a/java/src/mimis/device/jintellitype/JIntellitypeDevice.java b/java/src/mimis/device/jintellitype/JIntellitypeDevice.java index 37d8ff5..f644f7e 100644 --- a/java/src/mimis/device/jintellitype/JIntellitypeDevice.java +++ b/java/src/mimis/device/jintellitype/JIntellitypeDevice.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import mimis.Device; import mimis.event.Task; import mimis.exception.button.UnknownButtonException; +import mimis.exception.worker.ActivateException; import mimis.macro.state.Press; import mimis.macro.state.Release; import mimis.value.Action; @@ -29,8 +30,8 @@ public class JIntellitypeDevice extends Device implements HotkeyListener, Intell Hotkey.initialise(hotkeyList, jit); } - public void start() { - super.start(); + public void activate() throws ActivateException { + super.activate(); jit.addHotKeyListener(this); jit.addIntellitypeListener(this); add( @@ -61,6 +62,7 @@ public class JIntellitypeDevice extends Device implements HotkeyListener, Intell new Hotkey(Modifier.CTRL | Modifier.WIN, 'r'), new Hotkey(Modifier.CTRL | Modifier.WIN, 's'), new Continuous(Action.REPEAT, Target.APPLICATIONS, 500));*/ + } protected void add(Hotkey hotkey, Task task) { diff --git a/java/src/mimis/device/panel/PanelDevice.java b/java/src/mimis/device/panel/PanelDevice.java index 7efea6a..b616f4f 100644 --- a/java/src/mimis/device/panel/PanelDevice.java +++ b/java/src/mimis/device/panel/PanelDevice.java @@ -6,6 +6,7 @@ import javax.swing.WindowConstants; import mimis.Device; import mimis.event.Task; +import mimis.exception.worker.ActivateException; import mimis.macro.state.Press; import mimis.macro.state.Release; import mimis.value.Action; @@ -20,7 +21,8 @@ public class PanelDevice extends Device implements PanelButtonListener { super(TITLE); } - public void activate() { + public void activate() throws ActivateException { + super.activate(); panel = new Panel(this) { protected static final long serialVersionUID = 1L; protected void processWindowEvent(WindowEvent e) { diff --git a/java/src/mimis/device/wiimote/WiimoteDevice.java b/java/src/mimis/device/wiimote/WiimoteDevice.java index 15f8565..82584c8 100644 --- a/java/src/mimis/device/wiimote/WiimoteDevice.java +++ b/java/src/mimis/device/wiimote/WiimoteDevice.java @@ -7,6 +7,7 @@ import mimis.event.Feedback; import mimis.event.Task; import mimis.exception.button.UnknownButtonException; import mimis.exception.device.DeviceNotFoundException; +import mimis.exception.worker.ActivateException; import mimis.macro.state.Hold; import mimis.macro.state.Press; import mimis.macro.state.Release; @@ -45,7 +46,16 @@ public class WiimoteDevice extends Device implements GestureListener { gestureDevice.add(this); } - public void initialise() { + public void activate() throws ActivateException { + super.activate(); + try { + wiimote = wiimoteService.getDevice(this); + } catch (DeviceNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + wiimote.activateMotionSensing(); + add( new Hold(WiimoteButton.A), new Task(Action.TRAIN), @@ -167,16 +177,6 @@ public class WiimoteDevice extends Device implements GestureListener { wiimote.rumble(RUMBLE); } - public void activate() { - try { - wiimote = wiimoteService.getDevice(this); - } catch (DeviceNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - wiimote.activateMotionSensing(); - } - public void deactivate() { wiimote.deactivateMotionSensing(); } diff --git a/java/src/mimis/event/EventHandler.java b/java/src/mimis/event/EventHandler.java index 30e2f24..c3127fb 100644 --- a/java/src/mimis/event/EventHandler.java +++ b/java/src/mimis/event/EventHandler.java @@ -11,12 +11,8 @@ public abstract class EventHandler extends EventListener { EventHandler.eventRouter = eventRouter; } - protected void initialise() { - eventRouter.add(this); - } - public void event(Event event) { - System.out.println(event); + log.debug("aaa" + event); if (event instanceof Feedback) { feedback((Feedback) event); } else if (event instanceof Task) { diff --git a/java/src/mimis/event/EventListener.java b/java/src/mimis/event/EventListener.java index 1e9e2ca..e4baae9 100644 --- a/java/src/mimis/event/EventListener.java +++ b/java/src/mimis/event/EventListener.java @@ -16,6 +16,7 @@ public abstract class EventListener extends Worker { } public void add(Event event) { + log.info("event " + event + " " + active); eventQueue.add(event); synchronized (work) { work.notifyAll(); diff --git a/java/src/mimis/event/EventRouter.java b/java/src/mimis/event/EventRouter.java index 7791b20..f63f39a 100644 --- a/java/src/mimis/event/EventRouter.java +++ b/java/src/mimis/event/EventRouter.java @@ -17,8 +17,10 @@ public abstract class EventRouter extends EventListener { eventListenerList = new ArrayList(); } - public void add(EventListener eventListener) { - eventListenerList.add(eventListener); + public void add(EventListener... eventListenerArray) { + for (EventListener eventListener : eventListenerArray) { + eventListenerList.add(eventListener); + } } public void remove(EventListener eventListener) { diff --git a/java/src/mimis/event/router/LocalRouter.java b/java/src/mimis/event/router/LocalRouter.java index 344fc66..026d085 100644 --- a/java/src/mimis/event/router/LocalRouter.java +++ b/java/src/mimis/event/router/LocalRouter.java @@ -7,8 +7,7 @@ import mimis.value.Target; public class LocalRouter extends EventRouter { public void event(Event event) { - System.out.println("LocalSpreader krijgt event via evet()"); - System.out.println(application); + System.out.println("LocalSpreader krijgt event via event() " + event.getTarget()); Target target = event.getTarget(); switch (target) { case APPLICATION: @@ -19,6 +18,7 @@ public class LocalRouter extends EventRouter { default: for (EventListener eventListener : eventListenerList) { if (event.compatible(eventListener)) { + log.trace(eventListener); eventListener.add(event); } } diff --git a/java/src/mimis/macro/SequenceListener.java b/java/src/mimis/macro/SequenceListener.java index f2c3af8..2c711e7 100644 --- a/java/src/mimis/macro/SequenceListener.java +++ b/java/src/mimis/macro/SequenceListener.java @@ -3,14 +3,18 @@ package mimis.macro; import java.util.ArrayList; import java.util.HashMap; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + import mimis.Event; import mimis.event.EventHandler; import mimis.event.EventListener; import mimis.event.Task; import mimis.value.Target; - public class SequenceListener { + protected Log log = LogFactory.getLog(getClass()); + protected EventHandler eventHandler; protected ArrayList sequenceList; protected HashMap eventMap; @@ -37,6 +41,7 @@ public class SequenceListener { } public void add(State state) { + log.trace(state); for (Sequence sequence : sequenceList) { activeList.add(new Active(sequence)); } diff --git a/java/src/mimis/manager/SelectButton.java b/java/src/mimis/manager/SelectButton.java index 710958b..82ec9c6 100644 --- a/java/src/mimis/manager/SelectButton.java +++ b/java/src/mimis/manager/SelectButton.java @@ -1,18 +1,16 @@ package mimis.manager; -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import javax.swing.Action; -import javax.swing.JToggleButton; - +import javax.swing.JButton; import mimis.Worker; import mimis.exception.worker.ActivateException; import mimis.exception.worker.DeactivateException; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -public class SelectButton extends JToggleButton implements ItemListener { +public class SelectButton extends JButton implements ActionListener { protected Log log = LogFactory.getLog(getClass()); protected static final long serialVersionUID = 1L; @@ -22,31 +20,23 @@ public class SelectButton extends JToggleButton imple public SelectButton(T activatable) { this.activatable = activatable; setText(activatable.title()); - addItemListener(this); + setFocusable(false); + addActionListener(this); } - public void itemStateChanged(ItemEvent itemEvent) { - int state = itemEvent.getStateChange(); - if (state == ItemEvent.SELECTED) { - log.trace("Selected: " + activatable.title()); - setPressed(false); - try { - activatable.activate(); - } catch (ActivateException e) { - log.error(e); - } - } else { - log.trace("Deselected: " + activatable.title()); - setPressed(true); + public void actionPerformed(ActionEvent event) { + if (activatable.active()) { try { activatable.deactivate(); } catch (DeactivateException e) { log.error(e); } - } - } - - public void setPressed(boolean pressed) { - getModel().setPressed(pressed); + } else { + try { + activatable.activate(); + } catch (ActivateException e) { + log.error(e); + } + } } } diff --git a/java/src/mimis/value/Action.java b/java/src/mimis/value/Action.java index f29aa5d..711f4b9 100644 --- a/java/src/mimis/value/Action.java +++ b/java/src/mimis/value/Action.java @@ -16,5 +16,5 @@ public enum Action { VOLUME_DOWN, VOLUME_UP, FULLSCREEN, - TRAIN, STOP, SAVE, RECOGNIZE, LOAD, SHUFFLE, FADEOUT, QUIT, VISUALISER, LIKE, DISLIKE; + TRAIN, STOP, SAVE, RECOGNIZE, LOAD, SHUFFLE, FADEOUT, QUIT, VISUALISER, LIKE, DISLIKE, ACTIVATE; }