diff --git a/java/.classpath b/java/.classpath index ec1a60f..ea13487 100644 --- a/java/.classpath +++ b/java/.classpath @@ -7,7 +7,6 @@ - @@ -15,5 +14,6 @@ + diff --git a/java/jar/WiiUseJ.dll b/java/jar/WiiUseJ.dll new file mode 100644 index 0000000..a34e1b5 Binary files /dev/null and b/java/jar/WiiUseJ.dll differ diff --git a/java/jar/client.jar b/java/jar/client.jar new file mode 100644 index 0000000..21aeed9 Binary files /dev/null and b/java/jar/client.jar differ diff --git a/java/jar/jacob-1.15-M3-x86.dll b/java/jar/jacob-1.15-M3-x86.dll new file mode 100644 index 0000000..34876a0 Binary files /dev/null and b/java/jar/jacob-1.15-M3-x86.dll differ diff --git a/java/jar/jintellitype.dll b/java/jar/jintellitype.dll new file mode 100644 index 0000000..839236b Binary files /dev/null and b/java/jar/jintellitype.dll differ diff --git a/java/jar/jxinput.dll b/java/jar/jxinput.dll new file mode 100644 index 0000000..720b9bb Binary files /dev/null and b/java/jar/jxinput.dll differ diff --git a/java/jar/main.jar b/java/jar/main.jar new file mode 100644 index 0000000..6226e02 Binary files /dev/null and b/java/jar/main.jar differ diff --git a/java/jar/native/DelcomDLL.dll b/java/jar/native/DelcomDLL.dll new file mode 100644 index 0000000..ecfa470 Binary files /dev/null and b/java/jar/native/DelcomDLL.dll differ diff --git a/java/jar/native/NativeCall.dll b/java/jar/native/NativeCall.dll new file mode 100644 index 0000000..6e2cad1 Binary files /dev/null and b/java/jar/native/NativeCall.dll differ diff --git a/java/jar/native/list.exe b/java/jar/native/list.exe new file mode 100644 index 0000000..17d5b4f Binary files /dev/null and b/java/jar/native/list.exe differ diff --git a/java/jar/native/wiiscan.exe b/java/jar/native/wiiscan.exe new file mode 100644 index 0000000..9e9e443 Binary files /dev/null and b/java/jar/native/wiiscan.exe differ diff --git a/java/jar/native/wpcom.dll b/java/jar/native/wpcom.dll new file mode 100644 index 0000000..3d8f765 Binary files /dev/null and b/java/jar/native/wpcom.dll differ diff --git a/java/jar/wiiuse.dll b/java/jar/wiiuse.dll new file mode 100644 index 0000000..260aeb0 Binary files /dev/null and b/java/jar/wiiuse.dll differ diff --git a/java/main.bat b/java/main.bat index 3d5b566..49d4524 100644 --- a/java/main.bat +++ b/java/main.bat @@ -1,4 +1,4 @@ @echo off -set path=%path%;native +set path="C:\Program Files (x86)\Java\jdk1.6.0_24\bin";%path%;native java -cp bin;cfg;resource;lib/commons-logging-1.1.1.jar;lib/jacob-1.15-M3.jar;lib/TableLayout.jar;lib/nativecall-0.4.1.jar;lib/nativeloader-200505172341.jar mimis.Main pause \ No newline at end of file diff --git a/java/src/mimis/Client.java b/java/src/mimis/Client.java index df1ff2e..baede44 100644 --- a/java/src/mimis/Client.java +++ b/java/src/mimis/Client.java @@ -44,7 +44,6 @@ public class Client { } catch (ActivateException e) { log.fatal(e); } - mimis.stop(); } public static void main(String[] args) { diff --git a/java/src/mimis/device/lirc/LircDevice.java b/java/src/mimis/device/lirc/LircDevice.java index af494a9..f0704b3 100644 --- a/java/src/mimis/device/lirc/LircDevice.java +++ b/java/src/mimis/device/lirc/LircDevice.java @@ -74,9 +74,7 @@ public class LircDevice extends Device implements LircButtonListener, SignalList public void deactivate() throws DeactivateException { log.debug("Deactivate LircDevice"); super.deactivate(); - log.debug("nu lircserv"); lircService.deactivate(); - log.debug("nu erna"); } public void add(LircButton lircButton) { diff --git a/java/src/mimis/device/lirc/LircService.java b/java/src/mimis/device/lirc/LircService.java index a530c69..394799b 100644 --- a/java/src/mimis/device/lirc/LircService.java +++ b/java/src/mimis/device/lirc/LircService.java @@ -79,7 +79,6 @@ public class LircService extends Worker { if (active && !socket.isConnected()) { active = false; } - log.trace(active); return active; } diff --git a/java/src/mimis/device/wiimote/WiimoteDevice.java b/java/src/mimis/device/wiimote/WiimoteDevice.java index 9ca2e5a..2cdbc65 100644 --- a/java/src/mimis/device/wiimote/WiimoteDevice.java +++ b/java/src/mimis/device/wiimote/WiimoteDevice.java @@ -2,6 +2,7 @@ package mimis.device.wiimote; import mimis.Button; import mimis.Device; +import mimis.Worker; import mimis.device.wiimote.gesture.GestureDevice; import mimis.event.Feedback; import mimis.exception.button.UnknownButtonException; @@ -10,6 +11,7 @@ import mimis.exception.worker.ActivateException; import mimis.exception.worker.DeactivateException; import mimis.sequence.state.Press; import mimis.sequence.state.Release; +import mimis.util.ArrayCycle; import mimis.value.Action; import org.wiigee.event.GestureEvent; @@ -32,6 +34,7 @@ public class WiimoteDevice extends Device implements GestureListener { protected boolean connected; protected GestureDevice gestureDevice; protected int gestureId; + protected LedWorker ledWorker; static { WiimoteDevice.wiimoteService = new WiimoteService(); @@ -45,6 +48,7 @@ public class WiimoteDevice extends Device implements GestureListener { gestureDevice = new GestureDevice(); gestureDevice.add(this); gestureId = 0; + ledWorker = new LedWorker(); } /* Worker */ @@ -56,6 +60,13 @@ public class WiimoteDevice extends Device implements GestureListener { public boolean active() { if (wiimote != null) { + if (!ledWorker.active()) { + try { + ledWorker.activate(); + } catch (ActivateException e) { + log.error(e); + } + } connected = false; wiimote.getStatus(); synchronized (this) { @@ -65,25 +76,26 @@ public class WiimoteDevice extends Device implements GestureListener { log.error(e); } } - if (!connected) { - disconnect(); + if (!connected) { active = false; + try { + ledWorker.deactivate(); + } catch (DeactivateException e) { + log.error(e); + } } } return active; } - public void deactivate() throws DeactivateException { - super.deactivate(); - if (wiimote != null) { - wiimote.deactivateMotionSensing(); - } - wiimoteDiscovery.disconnect(); - } - public void stop() { super.stop(); + ledWorker.stop(); + if (wiimote != null) { + disconnect(); + } wiimoteService.exit(); + wiimoteDiscovery.stop(); } /* Events */ @@ -145,6 +157,7 @@ public class WiimoteDevice extends Device implements GestureListener { wiimote = null; try { wiimote = wiimoteService.getDevice(this); + ledWorker.activate(); } catch (DeviceNotFoundException e) { wiimoteDiscovery.activate(); } @@ -166,7 +179,6 @@ public class WiimoteDevice extends Device implements GestureListener { public void disconnect() { wiimote.disconnect(); wiimote = null; - wiimoteDiscovery.disconnect(); } public void disconnected() { @@ -203,4 +215,37 @@ public class WiimoteDevice extends Device implements GestureListener { System.out.printf("id #%d, prob %.0f%%, valid %b\n", event.getId(), 100 * event.getProbability(), event.isValid()); } } + + class LedWorker extends Worker { + protected ArrayCycle ledCycle; + + public LedWorker() { + ledCycle = new ArrayCycle(); + ledCycle.add(3); + ledCycle.add(6); + ledCycle.add(12); + ledCycle.add(8); + ledCycle.add(12); + ledCycle.add(6); + ledCycle.add(3); + } + + public void deactivate() throws DeactivateException { + super.deactivate(); + setLeds(1); + } + + protected void work() { + setLeds(ledCycle.next()); + } + + protected void setLeds(int leds) { + wiimote.setLeds( + (leds & 1) > 0, + (leds & 2) > 0, + (leds & 4) > 0, + (leds & 8) > 0); + sleep(leds == 8 ? 200 : 100); + } + } } diff --git a/java/src/mimis/device/wiimote/WiimoteDiscovery.java b/java/src/mimis/device/wiimote/WiimoteDiscovery.java index a945fc7..5e4f8e9 100644 --- a/java/src/mimis/device/wiimote/WiimoteDiscovery.java +++ b/java/src/mimis/device/wiimote/WiimoteDiscovery.java @@ -46,9 +46,9 @@ public class WiimoteDiscovery extends Worker { if (connect()) { wiimoteDevice.connected(); } else if (disconnect) { - disconnect(); + disconnect(); + disconnect = false; } - disconnect = false; } public void activate() throws ActivateException { @@ -62,9 +62,4 @@ public class WiimoteDiscovery extends Worker { process.destroy(); } } - - public void stop() { - super.stop(); - disconnect(); - } }