Simpele feedback van iTunes naar Wiimote toegevoegd, daartoe kleine fouten in initialisatie van Device gerepareerd. Exceptions moeten worden nagekeken!

This commit is contained in:
2011-05-09 19:18:36 +00:00
parent a8b0a229d7
commit dab8e9494b
9 changed files with 46 additions and 9 deletions

View File

@@ -4,6 +4,7 @@ import pm.event.Task;
import pm.event.EventHandler; import pm.event.EventHandler;
import pm.event.task.Continuous; import pm.event.task.Continuous;
import pm.event.task.Stopper; import pm.event.task.Stopper;
import pm.exception.InitialiseException;
import pm.exception.device.DeviceExitException; import pm.exception.device.DeviceExitException;
import pm.exception.device.DeviceInitialiseException; import pm.exception.device.DeviceInitialiseException;
import pm.macro.Sequence; import pm.macro.Sequence;
@@ -21,6 +22,7 @@ public abstract class Device extends EventHandler {
} }
public Device() { public Device() {
super();
sequenceListener = new SequenceListener(this); sequenceListener = new SequenceListener(this);
} }
@@ -77,7 +79,9 @@ public abstract class Device extends EventHandler {
} }
/* Device default methods */ /* Device default methods */
public void initialise() throws DeviceInitialiseException {} public void initialise() throws InitialiseException {
super.initialise();
}
public void exit() throws DeviceExitException { public void exit() throws DeviceExitException {
stop(); stop();

View File

@@ -19,6 +19,8 @@ public class Event {
} }
public boolean compatible(EventListener eventListener) { public boolean compatible(EventListener eventListener) {
System.out.println("Event compatible()");
System.out.println(eventListener);
switch (target) { switch (target) {
case ALL: case ALL:
return true; return true;

View File

@@ -11,6 +11,7 @@ import pm.device.panel.PanelDevice;
import pm.device.wiimote.WiimoteDevice; import pm.device.wiimote.WiimoteDevice;
import pm.event.EventHandler; import pm.event.EventHandler;
import pm.event.EventSpreader; import pm.event.EventSpreader;
import pm.exception.InitialiseException;
import pm.exception.device.DeviceExitException; import pm.exception.device.DeviceExitException;
import pm.exception.device.DeviceInitialiseException; import pm.exception.device.DeviceInitialiseException;
@@ -28,8 +29,8 @@ public abstract class Manager extends EventHandler {
public void initialise() throws DeviceInitialiseException { public void initialise() throws DeviceInitialiseException {
//add(new JIntellitypeDevice()); //add(new JIntellitypeDevice());
//add(new PlayerDevice()); //add(new PlayerDevice());
add(new RumblepadDevice()); //add(new RumblepadDevice());
//add(new WiimoteDevice()); add(new WiimoteDevice());
//add(new GUIDevice()); //add(new GUIDevice());
//add(new TextDevice()); //add(new TextDevice());
add(new PanelDevice()); add(new PanelDevice());
@@ -51,7 +52,7 @@ public abstract class Manager extends EventHandler {
device.initialise(); device.initialise();
device.start(); device.start();
System.out.println("Device started: " + device); System.out.println("Device started: " + device);
} catch (DeviceInitialiseException e) { } catch (InitialiseException e) {
removeList.add(device); removeList.add(device);
} }
} }

View File

@@ -1,6 +1,7 @@
package pm.application.itunes; package pm.application.itunes;
import pm.Application; import pm.Application;
import pm.event.Feedback;
import pm.exception.application.ApplicationExitException; import pm.exception.application.ApplicationExitException;
import pm.value.Action; import pm.value.Action;
@@ -87,8 +88,14 @@ public class iTunesApplication extends Application implements iTunesEventsInterf
/* iTunesEventInterface => naar eigen class? */ /* iTunesEventInterface => naar eigen class? */
public void onDatabaseChangedEvent(int[][] deletedObjectIDs, int[][] changedObjectIDs) {} public void onDatabaseChangedEvent(int[][] deletedObjectIDs, int[][] changedObjectIDs) {}
public void onPlayerPlayEvent(ITTrack iTrack) {} public void onPlayerPlayEvent(ITTrack iTrack) {
public void onPlayerStopEvent(ITTrack iTrack) {} System.out.println("iTunes play");
eventSpreader.add(new Feedback());
}
public void onPlayerStopEvent(ITTrack iTrack) {
System.out.println("iTunes stop");
eventSpreader.add(new Feedback());
}
public void onPlayerPlayingTrackChangedEvent(ITTrack iTrack) {} public void onPlayerPlayingTrackChangedEvent(ITTrack iTrack) {}
public void onCOMCallsDisabledEvent(ITCOMDisabledReason reason) {} public void onCOMCallsDisabledEvent(ITCOMDisabledReason reason) {}
public void onCOMCallsEnabledEvent() {} public void onCOMCallsEnabledEvent() {}

View File

@@ -8,12 +8,13 @@ import pm.Button;
import pm.Device; import pm.Device;
import pm.Macro; import pm.Macro;
import pm.device.wiimote.gesture.GestureDevice; import pm.device.wiimote.gesture.GestureDevice;
import pm.event.Feedback;
import pm.event.Task; import pm.event.Task;
import pm.event.task.Continuous; import pm.event.task.Continuous;
import pm.event.task.Dynamic; import pm.event.task.Dynamic;
import pm.exception.InitialiseException;
import pm.exception.button.UnknownButtonException; import pm.exception.button.UnknownButtonException;
import pm.exception.device.DeviceExitException; import pm.exception.device.DeviceExitException;
import pm.exception.device.DeviceInitialiseException;
import pm.exception.macro.StateOrderException; import pm.exception.macro.StateOrderException;
import pm.macro.state.Hold; import pm.macro.state.Hold;
import pm.macro.state.Press; import pm.macro.state.Press;
@@ -30,6 +31,7 @@ import wiiusej.wiiusejevents.physicalevents.WiimoteButtonsEvent;
public class WiimoteDevice extends Device implements GestureListener { public class WiimoteDevice extends Device implements GestureListener {
protected static final int CONNECT_MAX = 10; protected static final int CONNECT_MAX = 10;
protected static final int RUMBLE = 150;
protected static WiimoteService wiimoteService; protected static WiimoteService wiimoteService;
@@ -48,7 +50,8 @@ public class WiimoteDevice extends Device implements GestureListener {
gestureDevice.add(this); gestureDevice.add(this);
} }
public void initialise() throws DeviceInitialiseException { public void initialise() throws InitialiseException {
super.initialise();
wiimote = wiimoteService.getDevice(this); wiimote = wiimoteService.getDevice(this);
wiimote.activateMotionSensing(); wiimote.activateMotionSensing();
/*add( /*add(
@@ -178,4 +181,9 @@ public class WiimoteDevice extends Device implements GestureListener {
System.out.printf("id #%d, prob %.0f%%, valid %b\n", event.getId(), 100 * event.getProbability(), event.isValid()); System.out.printf("id #%d, prob %.0f%%, valid %b\n", event.getId(), 100 * event.getProbability(), event.isValid());
} }
} }
public void feedback(Feedback feedback) {
System.out.println("Wiimote feedback");
wiimote.rumble(RUMBLE);
}
} }

View File

@@ -17,6 +17,7 @@ public abstract class EventHandler extends EventListener {
} }
public void event(Event event) { public void event(Event event) {
System.out.println(event);
if (event instanceof Feedback) { if (event instanceof Feedback) {
feedback((Feedback) event); feedback((Feedback) event);
} else if (event instanceof Task) { } else if (event instanceof Task) {

View File

@@ -15,6 +15,10 @@ public abstract class EventListener extends Worker {
} }
public void add(Event event) { public void add(Event event) {
System.out.println("Eventlistener krijgt event via add()");
System.out.println(this);
System.out.println(event);
System.out.println(">>>");
eventQueue.add(event); eventQueue.add(event);
synchronized (available) { synchronized (available) {
available.notifyAll(); available.notifyAll();

View File

@@ -7,7 +7,7 @@ import pm.value.Target;
public class LocalSpreader extends EventSpreader { public class LocalSpreader extends EventSpreader {
public void event(Event event) { public void event(Event event) {
System.out.println("localspread"); System.out.println("LocalSpreader krijgt event via evet()");
System.out.println(application); System.out.println(application);
Target target = event.getTarget(); Target target = event.getTarget();
switch (target) { switch (target) {

View File

@@ -496,4 +496,14 @@ public class Wiimote implements WiiUseApiListener {
public Calibration getCalibration() { public Calibration getCalibration() {
return manager.getCalibration(id); return manager.getCalibration(id);
} }
public void rumble(int milliseconds) {
activateRumble();
try {
Thread.sleep(milliseconds);
} catch (InterruptedException e) {
} finally {
deactivateRumble();
}
}
} }