From b7556aaf72101986983bc63f99a1a5c810dadd26 Mon Sep 17 00:00:00 2001 From: Rik Veenboer Date: Fri, 22 Mar 2013 16:55:38 +0100 Subject: [PATCH] added wiipair, allowing for permanent pairing of wiimotes. Modified WiimoteDevice to stop using old WiimoteDiscovery method with wiiscan. --- java/WiiPair.exe | Bin 0 -> 10752 bytes .../mimis/device/wiimote/WiimoteDevice.java | 35 +++++++++--------- .../mimis/device/wiimote/WiimoteService.java | 7 ++-- 3 files changed, 21 insertions(+), 21 deletions(-) create mode 100644 java/WiiPair.exe diff --git a/java/WiiPair.exe b/java/WiiPair.exe new file mode 100644 index 0000000000000000000000000000000000000000..f16c97dcf33022d4ade77604f40f35d8b02dc473 GIT binary patch literal 10752 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 literal 0 HcmV?d00001 diff --git a/java/src/mimis/device/wiimote/WiimoteDevice.java b/java/src/mimis/device/wiimote/WiimoteDevice.java index 77259bf..1d4b04e 100644 --- a/java/src/mimis/device/wiimote/WiimoteDevice.java +++ b/java/src/mimis/device/wiimote/WiimoteDevice.java @@ -35,7 +35,6 @@ public class WiimoteDevice extends Component implements Device, GestureListener protected static WiimoteService wiimoteService; protected WiimoteTaskMapCycle taskMapCycle; - protected WiimoteDiscovery wiimoteDiscovery; protected Wiimote wiimote; protected boolean connected; protected GestureDevice gestureDevice; @@ -52,7 +51,6 @@ public class WiimoteDevice extends Component implements Device, GestureListener public WiimoteDevice() { super(TITLE); taskMapCycle = new WiimoteTaskMapCycle(); - wiimoteDiscovery = new WiimoteDiscovery(this); gestureDevice = new GestureDevice(); gestureDevice.add(this); motionDevice = new MotionDevice(this); @@ -62,14 +60,15 @@ public class WiimoteDevice extends Component implements Device, GestureListener /* Worker */ protected void activate() throws ActivateException { - motionDevice.setRouter(router); - motionDevice.start(); - parser(Action.ADD, taskMapCycle.player); - wiimote = null; + if (wiimote == null) { + motionDevice.setRouter(router); + motionDevice.start(); + parser(Action.ADD, taskMapCycle.player); + } try { connect(); } catch (DeviceNotFoundException e) { - wiimoteDiscovery.start(); + log.warn(e); } super.activate(); } @@ -98,13 +97,9 @@ public class WiimoteDevice extends Component implements Device, GestureListener protected void deactivate() throws DeactivateException { super.deactivate(); ledWorker.stop(); - wiimoteDiscovery.stop(); motionDevice.stop(); - if (disconnect) { - if (wiimote != null) { - wiimote.disconnect(); - } - wiimoteDiscovery.disconnect(); + if (disconnect && wiimote != null) { + wiimote.disconnect(); disconnect = false; } } @@ -117,7 +112,6 @@ public class WiimoteDevice extends Component implements Device, GestureListener wiimote = null; } wiimoteService.exit(); - wiimoteDiscovery.exit(); motionDevice.exit(); } @@ -182,22 +176,24 @@ public class WiimoteDevice extends Component implements Device, GestureListener public void feedback(Feedback feedback) { if (wiimote != null && active()) { - //log.debug("Wiimote rumble feedback"); - //wiimote.rumble(RUMBLE); + log.debug("Wiimote rumble feedback"); + wiimote.rumble(RUMBLE); } } /* Connectivity */ public synchronized void connect() throws DeviceNotFoundException { wiimote = wiimoteService.getDevice(this); - //wiimote.activateContinuous(); + wiimote.activateContinuous(); wiimote.activateMotionSensing(); - wiimoteDiscovery.stop(); ledWorker.start(); } /* Listeners */ public void onButtonsEvent(WiimoteButtonsEvent event) { + if (!active) { + return; + } int pressed = event.getButtonsJustPressed() - event.getButtonsHeld(); int released = event.getButtonsJustReleased(); try { @@ -214,6 +210,9 @@ public class WiimoteDevice extends Component implements Device, GestureListener } public void onMotionSensingEvent(MotionSensingEvent event) { + if (!active) { + return; + } gestureDevice.add(event.getGforce()); motionDevice.add(event); } diff --git a/java/src/mimis/device/wiimote/WiimoteService.java b/java/src/mimis/device/wiimote/WiimoteService.java index 6ff2480..2d905be 100644 --- a/java/src/mimis/device/wiimote/WiimoteService.java +++ b/java/src/mimis/device/wiimote/WiimoteService.java @@ -30,12 +30,12 @@ import wiiusej.wiiusejevents.wiiuseapievents.StatusEvent; public class WiimoteService extends WiiUseApiManager implements WiimoteListener { protected Log log = LogFactory.getLog(getClass()); - public static void main(String[] args) { + /*public static void main(String[] args) { Log log = LogFactory.getLog(WiimoteService.class); for (Wiimote wm : WiiUseApiManager.getWiimotes(1, false)) { log.debug(wm); } - } + }*/ protected final boolean RUMBLE = false; @@ -81,10 +81,11 @@ public class WiimoteService extends WiiUseApiManager implements WiimoteListener } public void onButtonsEvent(WiimoteButtonsEvent event) { - getWiimoteDevice(event).onButtonsEvent(event); + getWiimoteDevice(event).onButtonsEvent(event); } public void onMotionSensingEvent(MotionSensingEvent event) { + getWiimoteDevice(event).onMotionSensingEvent(event); }