This commit is contained in:
Bram Veenboer
2011-06-12 14:22:17 +00:00
parent 384bfd3608
commit ee958dddd8
51 changed files with 150 additions and 104 deletions

View File

@@ -1,7 +1,8 @@
package com.dt.iTunesController;
import com.jacob.com.*;
import java.util.Date;
import com.jacob.com.Dispatch;
/**
* Represents a track.
*

View File

@@ -1,6 +1,6 @@
package com.dt.iTunesController;
import com.jacob.activeX.*;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.DispatchEvents;

View File

@@ -47,7 +47,7 @@ public abstract class Application extends EventHandler implements Titled, Exitab
super.event(event);
}
public void stop() throws DeactivateException {
public void stop() {
super.stop();
if (active()) {
try {

View File

@@ -10,7 +10,6 @@ import mimis.device.wiimote.WiimoteDevice;
import mimis.event.EventRouter;
import mimis.event.router.GlobalRouter;
import mimis.exception.worker.ActivateException;
import mimis.exception.worker.DeactivateException;
import mimis.util.swing.Dialog;
import org.apache.commons.logging.Log;
@@ -45,11 +44,7 @@ public class Client {
} catch (ActivateException e) {
log.fatal(e);
}
try {
mimis.stop();
} catch (DeactivateException e) {
log.fatal(e);
}
mimis.stop();
}
public static void main(String[] args) {

View File

@@ -27,7 +27,7 @@ public abstract class Device extends EventHandler implements Titled, Exitable {
sequenceParser.reset();
}
public void stop() throws DeactivateException {
public void stop() {
if (active()) {
try {
deactivate();

View File

@@ -1,9 +1,11 @@
package mimis;
import java.io.Serializable;
import mimis.event.EventListener;
import mimis.value.Target;
public class Event {
public class Event implements Serializable {
protected static final long serialVersionUID = 1L;
protected Target target;

View File

@@ -11,7 +11,6 @@ import javax.swing.JToggleButton;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;
import mimis.exception.worker.DeactivateException;
import mimis.util.Swing;
import org.apache.commons.logging.Log;
@@ -80,11 +79,7 @@ public class GUI extends JFrame {
protected void processWindowEvent(WindowEvent event) {
if (event.getID() == WindowEvent.WINDOW_CLOSING) {
log.debug("Window closing");
try {
mimis.stop();
} catch (DeactivateException e) {
log.error(e);
}
mimis.stop();
}
}

View File

@@ -6,7 +6,6 @@ import java.util.Map;
import javax.swing.JToggleButton;
import mimis.exception.worker.DeactivateException;
import mimis.manager.Exitable;
import mimis.manager.ManageButton;
import mimis.manager.Titled;
@@ -27,7 +26,7 @@ public class Manager<T extends Worker & Titled & Exitable> extends Worker {
createButtons();
}
public void stop() throws DeactivateException {
public void stop() {
super.stop();
for (T manageable : manageableArray) {
manageable.stop();

View File

@@ -30,11 +30,13 @@ public abstract class Worker implements Runnable {
start(THREAD);
}
public void stop() throws DeactivateException {
public void stop() {
if (active()) {
log.debug("stop deact");
deactivate();
log.debug("stop na deact");
try {
deactivate();
} catch (DeactivateException e) {
log.error(e);
}
}
run = false;
synchronized (this) {

View File

@@ -24,7 +24,7 @@ public class GomPlayerApplication extends WindowsApplication {
seekWorker = new SeekWorker();
}
public void stop() throws DeactivateException {
public void stop() {
super.stop();
volumeWorker.stop();
seekWorker.stop();

View File

@@ -49,7 +49,7 @@ public class WinampApplication extends WindowsApplication {
seekWorker = new SeekWorker();
}
public void stop() throws DeactivateException {
public void stop() {
super.stop();
volumeWorker.stop();
seekWorker.stop();

View File

@@ -84,7 +84,7 @@ public class iTunesApplication extends Application implements iTunesEventsInterf
}
}
public void stop() throws DeactivateException {
public void stop() {
super.stop();
volumeWorker.stop();
}

View File

@@ -61,7 +61,7 @@ public class VLCApplication extends CMDApplication {
}
}
public void stop() throws DeactivateException {
public void stop() {
super.stop();
volumeWorker.stop();
seekWorker.stop();

View File

@@ -62,7 +62,7 @@ public class JIntellitypeDevice extends Device implements HotkeyListener, Intell
jit.removeIntellitypeListener(this);
}
public void stop() throws DeactivateException {
public void stop() {
super.stop();
jit.cleanUp();
}

View File

@@ -49,7 +49,6 @@ public class LircDevice extends Device implements LircButtonListener, SignalList
}
public boolean active() {
log.trace("LircDevice active?");
if (active && !lircService.active()) {
try {
deactivate();
@@ -95,7 +94,7 @@ public class LircDevice extends Device implements LircButtonListener, SignalList
}
}
public void stop() throws DeactivateException {
public void stop() {
log.debug("Stop LircDevice");
super.stop();
lircService.stop();

View File

@@ -21,7 +21,7 @@ import mimis.exception.worker.DeactivateException;
import mimis.util.Native;
public class LircService extends Worker {
public static final String IP = "127.0.0.1";
public static final String IP = "localhost";
public static final int PORT = 8765;
protected ArrayList<LircButtonListener> lircButtonListenerList;
@@ -56,7 +56,7 @@ public class LircService extends Worker {
}
public void activate() throws ActivateException {
log.debug("Activate LircService");
log.trace("Activate LircService");
try {
socket = new Socket(ip, port);
@@ -76,7 +76,6 @@ public class LircService extends Worker {
}
public boolean active() {
log.trace("LircService active?");
if (active && !socket.isConnected()) {
active = false;
}
@@ -85,7 +84,7 @@ public class LircService extends Worker {
}
public void deactivate() throws DeactivateException {
log.debug("Deactivate LircService");
log.trace("Deactivate LircService");
super.deactivate();
try {
inputStream.close();

View File

@@ -1,18 +1,24 @@
package mimis.device.network;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.concurrent.ConcurrentLinkedQueue;
import mimis.Device;
import mimis.Event;
import mimis.Worker;
import mimis.event.Feedback;
import mimis.event.Task;
import mimis.event.feedback.TextFeedback;
import mimis.exception.worker.ActivateException;
import mimis.exception.worker.DeactivateException;
import mimis.value.Action;
import mimis.value.Target;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -24,11 +30,12 @@ public class NetworkDevice extends Device {
protected Log log = LogFactory.getLog(NetworkDevice.class);
protected int port;
protected Server server;
protected ArrayList<Client> clientList;
protected ConcurrentLinkedQueue<Client> clientList;
public NetworkDevice(int port) {
super(TITLE);
this.port = port;
clientList = new ConcurrentLinkedQueue<Client>();
}
public NetworkDevice() {
@@ -36,15 +43,25 @@ public class NetworkDevice extends Device {
}
public void activate() throws ActivateException {
log.trace("Activate NetworkDevice");
try {
server = new Server(port);
server.start();
server.activate();
} catch (IOException e) {
throw new ActivateException();
}
super.activate();
}
public boolean active() {
for (Client client : clientList) {
if (!client.active()) {
client.stop();
}
}
return server == null ? active : (active = server.active());
}
public void deactivate() throws DeactivateException {
super.deactivate();
server.stop();
@@ -52,11 +69,7 @@ public class NetworkDevice extends Device {
protected void feedback(Feedback feedback) {
for (Client client : clientList) {
try {
client.send(feedback);
} catch (IOException e) {
e.printStackTrace();
}
client.send(feedback);
}
}
@@ -65,24 +78,35 @@ public class NetworkDevice extends Device {
public Server(int port) throws IOException {
serverSocket = new ServerSocket(port);
clientList = new ArrayList<Client>();
log.trace("Server started");
eventRouter.add(new TextFeedback("[NetworkDevice] Wating for clients"));
}
public boolean active() {
return active = !serverSocket.isClosed();
}
public void work() {
log.trace("Server is waiting for clients");
try {
Socket socket = serverSocket.accept();
Client client = new Client(socket);
client.start();
log.debug("Client connected");
try {
client.activate();
} catch (ActivateException e) {
log.error(e);
}
eventRouter.add(new TextFeedback("[NetworkDevice] Client connected: " + socket.getInetAddress()));
} catch (IOException e) {
log.error(e);
}
}
public void stop() throws DeactivateException {
public void stop() {
super.stop();
try {
serverSocket.close();
} catch (IOException e) {
log.error(e);
}
for (Client client : clientList) {
client.stop();
}
@@ -91,18 +115,26 @@ public class NetworkDevice extends Device {
protected class Client extends Worker {
protected Socket socket;
protected ObjectInputStream objectInputStream;
protected InputStream inputStream;
protected OutputStream outputStream;
protected ObjectOutputStream objectOutputStream;
public Client(Socket socket) throws IOException {
this.socket = socket;
objectInputStream = new ObjectInputStream(socket.getInputStream());
objectOutputStream = new ObjectOutputStream(socket.getOutputStream());
inputStream = socket.getInputStream();
outputStream = socket.getOutputStream();
objectOutputStream = new ObjectOutputStream(outputStream);
clientList.add(this);
}
public boolean active() {
return active = socket.isConnected();
}
public void work() {
ObjectInputStream objectInputStream;
try {
objectInputStream = new ObjectInputStream(inputStream);
Object object;
do {
object = objectInputStream.readObject();
@@ -112,26 +144,33 @@ public class NetworkDevice extends Device {
}
} while (object != null);
} catch (IOException e) {
e.printStackTrace();
log.error(e);
stop();
} catch (ClassNotFoundException e) {
e.printStackTrace();
log.error(e);
}
}
public void stop() {
super.stop();
send(new Task(Target.SELF, Action.STOP));
clientList.remove(this);
try {
objectInputStream.close();
objectOutputStream.close();
inputStream.close();
outputStream.close();
socket.close();
} catch (IOException e) {
log.error(e);
} finally {
clientList.remove(this);
}
eventRouter.add(new TextFeedback("[NetworkDevice] Client disconnected: " + socket.getInetAddress()));
}
public void send(Object object) throws IOException {
objectOutputStream.writeObject(object);
public void send(Object object) {
try {
objectOutputStream.writeObject(object);
} catch (IOException e) {
log.error(e);
}
}
}
}

View File

@@ -81,7 +81,7 @@ public class WiimoteDevice extends Device implements GestureListener {
wiimoteDiscovery.disconnect();
}
public void stop() throws DeactivateException {
public void stop() {
super.stop();
wiimoteService.exit();
}

View File

@@ -63,7 +63,7 @@ public class WiimoteDiscovery extends Worker {
}
}
public void stop() throws DeactivateException {
public void stop() {
super.stop();
disconnect();
}

View File

@@ -5,7 +5,6 @@ import java.util.concurrent.ConcurrentLinkedQueue;
import mimis.Event;
import mimis.Worker;
import mimis.exception.worker.DeactivateException;
public abstract class EventListener extends Worker {
protected Queue<Event> eventQueue;
@@ -37,7 +36,7 @@ public abstract class EventListener extends Worker {
event(eventQueue.poll());
}
public void stop() throws DeactivateException {
public void stop() {
super.stop();
synchronized (work) {
work.notifyAll();

View File

@@ -15,7 +15,7 @@ public abstract class EventRouter extends EventListener {
public EventRouter() {
eventListenerList = new ArrayList<EventListener>();
}
public void add(EventListener... eventListenerArray) {
for (EventListener eventListener : eventListenerArray) {
eventListenerList.add(eventListener);

View File

@@ -4,6 +4,8 @@ import mimis.Event;
import mimis.value.Target;
public class Feedback extends Event {
protected static final long serialVersionUID = 1L;
public Feedback() {
super(Target.ALL);
}

View File

@@ -6,6 +6,8 @@ import mimis.value.Signal;
import mimis.value.Target;
public class Task extends Event {
protected static final long serialVersionUID = 1L;
public static final Target TARGET = Target.SELF;
protected Action action;

View File

@@ -32,13 +32,6 @@ public class GlobalRouter extends EventRouter {
super.activate();
}
public boolean active() {
if (active && client.active()) {
active = false;
}
return active;
}
public void deactivate() throws DeactivateException {
client.stop();
}
@@ -78,10 +71,6 @@ public class GlobalRouter extends EventRouter {
}
}
public boolean active() {
return active = socket.isConnected();
}
public void stop() {
try {
objectInputStream.close();

View File

@@ -1,7 +1,6 @@
package mimis.manager;
import mimis.exception.worker.DeactivateException;
public interface Exitable {
public void stop() throws DeactivateException;
public void stop();
}

View File

@@ -26,14 +26,8 @@ package org.wiigee.control;
import java.io.IOException;
import java.util.Vector;
import javax.bluetooth.DeviceClass;
import javax.bluetooth.DiscoveryListener;
import javax.bluetooth.RemoteDevice;
import javax.bluetooth.ServiceRecord;
import org.wiigee.util.Log;
import org.wiigee.device.Wiimote;
import org.wiigee.util.Log;
public class WiimoteDeviceDiscovery implements DiscoveryListener {

View File

@@ -26,14 +26,11 @@ package org.wiigee.control;
import java.io.IOException;
import java.util.Vector;
import javax.bluetooth.DiscoveryAgent;
import javax.bluetooth.LocalDevice;
import org.wiigee.util.Log;
import org.wiigee.device.Wiimote;
import org.wiigee.event.AccelerationListener;
import org.wiigee.event.GestureListener;
import org.wiigee.filter.Filter;
import org.wiigee.util.Log;
// Singleton
public class WiimoteWiigee extends Wiigee {

View File

@@ -26,9 +26,20 @@ package org.wiigee.device;
import java.io.IOException;
import java.util.Vector;
import org.wiigee.logic.*;
import org.wiigee.event.*;
import org.wiigee.filter.*;
import org.wiigee.event.AccelerationEvent;
import org.wiigee.event.AccelerationListener;
import org.wiigee.event.ButtonListener;
import org.wiigee.event.ButtonPressedEvent;
import org.wiigee.event.ButtonReleasedEvent;
import org.wiigee.event.GestureListener;
import org.wiigee.event.MotionStartEvent;
import org.wiigee.event.MotionStopEvent;
import org.wiigee.filter.DirectionalEquivalenceFilter;
import org.wiigee.filter.Filter;
import org.wiigee.filter.IdleStateFilter;
import org.wiigee.filter.MotionDetectFilter;
import org.wiigee.logic.ProcessingUnit;
import org.wiigee.logic.TriggeredProcessingUnit;
/**
* Abstract representation of a device with very basic functionalities. This

View File

@@ -26,7 +26,12 @@ package org.wiigee.device;
import java.io.IOException;
import java.util.Random;
import java.util.Vector;
import org.wiigee.event.*;
import org.wiigee.event.InfraredEvent;
import org.wiigee.event.InfraredListener;
import org.wiigee.event.RotationEvent;
import org.wiigee.event.RotationListener;
import org.wiigee.event.RotationSpeedEvent;
import org.wiigee.filter.Filter;
import org.wiigee.util.Log;

View File

@@ -26,7 +26,7 @@ package org.wiigee.event;
import java.util.EventObject;
import org.wiigee.device.*;
import org.wiigee.device.Device;
/**
* This Event would be generated if an acceleration has been detected.

View File

@@ -25,6 +25,7 @@
package org.wiigee.event;
import java.util.EventObject;
import org.wiigee.device.Device;
/**

View File

@@ -24,7 +24,7 @@
package org.wiigee.event;
import org.wiigee.device.*;
import org.wiigee.device.Device;
/**
*

View File

@@ -24,7 +24,7 @@
package org.wiigee.event;
import org.wiigee.device.*;
import org.wiigee.device.Device;
/**
*

View File

@@ -25,6 +25,7 @@
package org.wiigee.event;
import java.util.EventObject;
import org.wiigee.device.Device;
/**

View File

@@ -25,6 +25,7 @@
package org.wiigee.event;
import java.util.EventObject;
import org.wiigee.device.Device;
/**

View File

@@ -25,6 +25,7 @@
package org.wiigee.event;
import java.util.EventObject;
import org.wiigee.device.Device;
/**

View File

@@ -25,6 +25,7 @@
package org.wiigee.logic;
import java.util.Vector;
import org.wiigee.event.AccelerationEvent;
/**

View File

@@ -25,6 +25,7 @@
package org.wiigee.logic;
import java.util.Vector;
import org.wiigee.event.AccelerationEvent;
import org.wiigee.util.Log;

View File

@@ -25,6 +25,7 @@
package org.wiigee.logic;
import java.text.DecimalFormat;
import java.util.Vector;
import org.wiigee.util.Log;
/**

View File

@@ -23,9 +23,9 @@
*/
package org.wiigee.logic;
import java.text.*;
import java.text.DecimalFormat;
import java.util.Vector;
import java.lang.Math;
import org.wiigee.util.Log;
/**

View File

@@ -3,10 +3,10 @@ package org.wiigee.logic;
import java.util.Vector;
import org.wiigee.event.AccelerationEvent;
import org.wiigee.event.ButtonPressedEvent;
import org.wiigee.event.ButtonReleasedEvent;
import org.wiigee.event.AccelerationListener;
import org.wiigee.event.ButtonListener;
import org.wiigee.event.ButtonPressedEvent;
import org.wiigee.event.ButtonReleasedEvent;
import org.wiigee.event.GestureEvent;
import org.wiigee.event.GestureListener;
import org.wiigee.event.MotionStartEvent;

View File

@@ -25,6 +25,7 @@
package org.wiigee.logic;
import java.util.Vector;
import org.wiigee.event.AccelerationEvent;
import org.wiigee.util.Log;

View File

@@ -25,7 +25,14 @@
package org.wiigee.logic;
import java.util.Vector;
import org.wiigee.event.*;
import org.wiigee.event.AccelerationEvent;
import org.wiigee.event.ActionStartEvent;
import org.wiigee.event.ActionStopEvent;
import org.wiigee.event.ButtonPressedEvent;
import org.wiigee.event.ButtonReleasedEvent;
import org.wiigee.event.MotionStartEvent;
import org.wiigee.event.MotionStopEvent;
import org.wiigee.util.Log;
/**

View File

@@ -29,6 +29,7 @@ import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import org.wiigee.logic.GestureModel;
import org.wiigee.logic.HMM;
import org.wiigee.logic.Quantizer;

View File

@@ -21,8 +21,6 @@ import java.util.concurrent.atomic.AtomicBoolean;
import javax.swing.event.EventListenerList;
import wiiusej.values.Calibration;
import wiiusej.values.RawAcceleration;
import wiiusej.wiiusejevents.utils.EventsGatherer;
import wiiusej.wiiusejevents.utils.WiiUseApiListener;
import wiiusej.wiiusejevents.wiiuseapievents.WiiUseApiEvent;

View File

@@ -18,7 +18,6 @@ package wiiusej;
import javax.swing.event.EventListenerList;
import wiiusej.values.Calibration;
import wiiusej.wiiusejevents.utils.WiiUseApiListener;
import wiiusej.wiiusejevents.utils.WiimoteListener;
import wiiusej.wiiusejevents.wiiuseapievents.ClassicControllerInsertedEvent;

View File

@@ -18,6 +18,7 @@ package wiiusej.test;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import wiiusej.WiiUseApiManager;
/**

View File

@@ -25,6 +25,7 @@ import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFrame;
import wiiusej.WiiUseApiManager;
import wiiusej.Wiimote;
import wiiusej.utils.AccelerationPanel;

View File

@@ -25,6 +25,7 @@ import java.awt.RenderingHints;
import java.awt.Shape;
import java.awt.Toolkit;
import java.awt.geom.AffineTransform;
import wiiusej.wiiusejevents.physicalevents.ClassicControllerButtonsEvent;
import wiiusej.wiiusejevents.physicalevents.ClassicControllerEvent;
import wiiusej.wiiusejevents.physicalevents.ExpansionEvent;

View File

@@ -24,6 +24,7 @@ import java.awt.Image;
import java.awt.RenderingHints;
import java.awt.Shape;
import java.awt.geom.AffineTransform;
import wiiusej.wiiusejevents.physicalevents.ExpansionEvent;
import wiiusej.wiiusejevents.physicalevents.IREvent;
import wiiusej.wiiusejevents.physicalevents.JoystickEvent;