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();
- }
}