diff --git a/java/src/pm/Device.java b/java/src/pm/Device.java index bbff389..4adf335 100644 --- a/java/src/pm/Device.java +++ b/java/src/pm/Device.java @@ -4,6 +4,7 @@ import pm.event.Task; import pm.event.EventHandler; import pm.event.task.Continuous; import pm.event.task.Stopper; +import pm.exception.InitialiseException; import pm.exception.device.DeviceExitException; import pm.exception.device.DeviceInitialiseException; import pm.macro.Sequence; @@ -21,6 +22,7 @@ public abstract class Device extends EventHandler { } public Device() { + super(); sequenceListener = new SequenceListener(this); } @@ -77,7 +79,9 @@ public abstract class Device extends EventHandler { } /* Device default methods */ - public void initialise() throws DeviceInitialiseException {} + public void initialise() throws InitialiseException { + super.initialise(); + } public void exit() throws DeviceExitException { stop(); diff --git a/java/src/pm/Event.java b/java/src/pm/Event.java index ca739aa..46603b4 100644 --- a/java/src/pm/Event.java +++ b/java/src/pm/Event.java @@ -19,6 +19,8 @@ public class Event { } public boolean compatible(EventListener eventListener) { + System.out.println("Event compatible()"); + System.out.println(eventListener); switch (target) { case ALL: return true; diff --git a/java/src/pm/Manager.java b/java/src/pm/Manager.java index 0303f3a..e4a6dd4 100644 --- a/java/src/pm/Manager.java +++ b/java/src/pm/Manager.java @@ -11,6 +11,7 @@ import pm.device.panel.PanelDevice; import pm.device.wiimote.WiimoteDevice; import pm.event.EventHandler; import pm.event.EventSpreader; +import pm.exception.InitialiseException; import pm.exception.device.DeviceExitException; import pm.exception.device.DeviceInitialiseException; @@ -28,8 +29,8 @@ public abstract class Manager extends EventHandler { public void initialise() throws DeviceInitialiseException { //add(new JIntellitypeDevice()); //add(new PlayerDevice()); - add(new RumblepadDevice()); - //add(new WiimoteDevice()); + //add(new RumblepadDevice()); + add(new WiimoteDevice()); //add(new GUIDevice()); //add(new TextDevice()); add(new PanelDevice()); @@ -51,7 +52,7 @@ public abstract class Manager extends EventHandler { device.initialise(); device.start(); System.out.println("Device started: " + device); - } catch (DeviceInitialiseException e) { + } catch (InitialiseException e) { removeList.add(device); } } diff --git a/java/src/pm/application/itunes/iTunesApplication.java b/java/src/pm/application/itunes/iTunesApplication.java index f2f5d58..0d9f4ca 100644 --- a/java/src/pm/application/itunes/iTunesApplication.java +++ b/java/src/pm/application/itunes/iTunesApplication.java @@ -1,6 +1,7 @@ package pm.application.itunes; import pm.Application; +import pm.event.Feedback; import pm.exception.application.ApplicationExitException; import pm.value.Action; @@ -87,8 +88,14 @@ public class iTunesApplication extends Application implements iTunesEventsInterf /* iTunesEventInterface => naar eigen class? */ public void onDatabaseChangedEvent(int[][] deletedObjectIDs, int[][] changedObjectIDs) {} - public void onPlayerPlayEvent(ITTrack iTrack) {} - public void onPlayerStopEvent(ITTrack iTrack) {} + public void onPlayerPlayEvent(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 onCOMCallsDisabledEvent(ITCOMDisabledReason reason) {} public void onCOMCallsEnabledEvent() {} diff --git a/java/src/pm/device/wiimote/WiimoteDevice.java b/java/src/pm/device/wiimote/WiimoteDevice.java index 38fda46..8b2797f 100644 --- a/java/src/pm/device/wiimote/WiimoteDevice.java +++ b/java/src/pm/device/wiimote/WiimoteDevice.java @@ -8,12 +8,13 @@ import pm.Button; import pm.Device; import pm.Macro; import pm.device.wiimote.gesture.GestureDevice; +import pm.event.Feedback; import pm.event.Task; import pm.event.task.Continuous; import pm.event.task.Dynamic; +import pm.exception.InitialiseException; import pm.exception.button.UnknownButtonException; import pm.exception.device.DeviceExitException; -import pm.exception.device.DeviceInitialiseException; import pm.exception.macro.StateOrderException; import pm.macro.state.Hold; import pm.macro.state.Press; @@ -30,6 +31,7 @@ import wiiusej.wiiusejevents.physicalevents.WiimoteButtonsEvent; public class WiimoteDevice extends Device implements GestureListener { protected static final int CONNECT_MAX = 10; + protected static final int RUMBLE = 150; protected static WiimoteService wiimoteService; @@ -48,7 +50,8 @@ public class WiimoteDevice extends Device implements GestureListener { gestureDevice.add(this); } - public void initialise() throws DeviceInitialiseException { + public void initialise() throws InitialiseException { + super.initialise(); wiimote = wiimoteService.getDevice(this); wiimote.activateMotionSensing(); /*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()); } } + + public void feedback(Feedback feedback) { + System.out.println("Wiimote feedback"); + wiimote.rumble(RUMBLE); + } } diff --git a/java/src/pm/event/EventHandler.java b/java/src/pm/event/EventHandler.java index 11367f0..509bcdd 100644 --- a/java/src/pm/event/EventHandler.java +++ b/java/src/pm/event/EventHandler.java @@ -17,6 +17,7 @@ public abstract class EventHandler extends EventListener { } public void event(Event event) { + System.out.println(event); if (event instanceof Feedback) { feedback((Feedback) event); } else if (event instanceof Task) { diff --git a/java/src/pm/event/EventListener.java b/java/src/pm/event/EventListener.java index 981b12b..1e6e50d 100644 --- a/java/src/pm/event/EventListener.java +++ b/java/src/pm/event/EventListener.java @@ -15,6 +15,10 @@ public abstract class EventListener extends Worker { } 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); synchronized (available) { available.notifyAll(); diff --git a/java/src/pm/event/spreader/LocalSpreader.java b/java/src/pm/event/spreader/LocalSpreader.java index d0f0030..8877a8e 100644 --- a/java/src/pm/event/spreader/LocalSpreader.java +++ b/java/src/pm/event/spreader/LocalSpreader.java @@ -7,7 +7,7 @@ import pm.value.Target; public class LocalSpreader extends EventSpreader { public void event(Event event) { - System.out.println("localspread"); + System.out.println("LocalSpreader krijgt event via evet()"); System.out.println(application); Target target = event.getTarget(); switch (target) { diff --git a/java/src/wiiusej/Wiimote.java b/java/src/wiiusej/Wiimote.java index 3b992c4..8c6e13a 100644 --- a/java/src/wiiusej/Wiimote.java +++ b/java/src/wiiusej/Wiimote.java @@ -496,4 +496,14 @@ public class Wiimote implements WiiUseApiListener { public Calibration getCalibration() { return manager.getCalibration(id); } + + public void rumble(int milliseconds) { + activateRumble(); + try { + Thread.sleep(milliseconds); + } catch (InterruptedException e) { + } finally { + deactivateRumble(); + } + } }