save version 0.1. Last version working on wiiuse 0.9 API.
git-svn-id: http://wiiusej.googlecode.com/svn/trunk@42 ae48ae66-6a45-0410-b38e-211266189506
This commit is contained in:
174
tag1/WiiUseJ/src/wiiusej/WiiUseApi.java
Normal file
174
tag1/WiiUseJ/src/wiiusej/WiiUseApi.java
Normal file
@@ -0,0 +1,174 @@
|
||||
package wiiusej;
|
||||
|
||||
/**
|
||||
* Singleton used to manipulate WiiUse Api.
|
||||
* @author gduche
|
||||
*
|
||||
*/
|
||||
public class WiiUseApi {
|
||||
|
||||
static {
|
||||
System.loadLibrary("libWiiuseJ");
|
||||
}
|
||||
|
||||
private static WiiUseApi instance = new WiiUseApi();
|
||||
|
||||
/**
|
||||
* Get the only instance of WiiUseApi.
|
||||
* @return
|
||||
*/
|
||||
static WiiUseApi getInstance(){
|
||||
return instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* Load the library.
|
||||
*
|
||||
* @return 0 if there is an error, 1 if everything is ok.
|
||||
*/
|
||||
native int loadLibrary();
|
||||
|
||||
/**
|
||||
* Try to connect to 2 wiimotes. Make them rumble to show they are
|
||||
* connected.
|
||||
*
|
||||
* @return 0 if there is an error otherwise it returns the number of
|
||||
* wiimotes connected.
|
||||
*/
|
||||
native int doConnections();
|
||||
|
||||
/**
|
||||
* Close connection to the wiimote with the given id.
|
||||
*
|
||||
*/
|
||||
native void closeConnection(int id);
|
||||
|
||||
/**
|
||||
* Shutdown Wiiuse API.
|
||||
* @return 0 if there is an error, 1 if everything is ok.
|
||||
*/
|
||||
native void shutdownApi();
|
||||
|
||||
/**
|
||||
* Activate rumble on the wiimote with the given id.
|
||||
* @param id the id of the wiimote.
|
||||
*/
|
||||
native void activateRumble(int id);
|
||||
|
||||
/**
|
||||
* Deactivate rumble on the wiimote with the given id.
|
||||
*
|
||||
* @param id the id of the wiimote.
|
||||
*/
|
||||
native void deactivateRumble(int id);
|
||||
|
||||
/**
|
||||
* Activate IR Tracking on the wiimote with the given id.
|
||||
* @param id the id of the wiimote.
|
||||
*/
|
||||
native void activateIRTracking(int id);
|
||||
|
||||
/**
|
||||
* Deactivate IR Tracking on the wiimote with the given id.
|
||||
* @param id the id of the wiimote.
|
||||
*/
|
||||
native void deactivateIRTracking(int id);
|
||||
|
||||
/**
|
||||
* Activate motion sensing on the wiimote with the given id.
|
||||
* @param id the id of the wiimote.
|
||||
*/
|
||||
native void activateMotionSensing(int id);
|
||||
|
||||
/**
|
||||
* Deactivate motion sensing on the wiimote with the given id.
|
||||
* @param id the id of the wiimote.
|
||||
*/
|
||||
native void deactivateMotionSensing(int id);
|
||||
|
||||
/**
|
||||
* Set wiimote leds status.
|
||||
* @param id the id of the wiimote concerned
|
||||
* @param led1 status of led1: True=ON, False=OFF
|
||||
* @param led2 status of led2: True=ON, False=OFF
|
||||
* @param led3 status of led3: True=ON, False=OFF
|
||||
* @param led4 status of led4: True=ON, False=OFF
|
||||
*/
|
||||
native void setLeds(int id, boolean led1, boolean led2, boolean led3, boolean led4);
|
||||
|
||||
/**
|
||||
* Set how many degrees an angle must change to generate an event.
|
||||
* @param id id of the wiimote concerned
|
||||
* @param angle minimum angle detected by an event
|
||||
*/
|
||||
native void setOrientThreshold(int id, float angle);
|
||||
|
||||
/**
|
||||
* Make the the accelerometers give smoother results.
|
||||
* This is set by default.
|
||||
* @param id the id of the wiimote concerned
|
||||
*/
|
||||
native void activateSmoothing(int id);
|
||||
|
||||
/**
|
||||
* Make the the accelerometers give raw results.
|
||||
* @param id the id of the wiimote concerned
|
||||
*/
|
||||
native void deactivateSmoothing(int id);
|
||||
|
||||
/**
|
||||
* Make the wiimote generate an event each time we poll.
|
||||
* Not set by default.
|
||||
* @param id the id of the wiimote concerned
|
||||
*/
|
||||
native void activateContinuous(int id);
|
||||
|
||||
/**
|
||||
* Make the wiimote generate an event only when there is one.
|
||||
* @param id the id of the wiimote concerned
|
||||
*/
|
||||
native void deactivateContinuous(int id);
|
||||
|
||||
/**
|
||||
* Get status and values from the wiimotes and send it through callbacks.
|
||||
*
|
||||
* @param id the id of the wiimote of which we want the status.
|
||||
*/
|
||||
native void getStatus(int id);
|
||||
|
||||
/**
|
||||
* Get status and values from the wiimotes and send it through callbacks.
|
||||
*
|
||||
* @param mote The WiimoteEvent object to fill with the datas.
|
||||
*/
|
||||
native void specialPoll(WiiMoteEvent mote);
|
||||
|
||||
|
||||
/* Tests */
|
||||
public static void main(String[] args) {
|
||||
|
||||
/* Test JNI Side */
|
||||
WiiUseApi manager = new WiiUseApi();
|
||||
|
||||
int value = manager.loadLibrary();
|
||||
System.out.println("loadLibrary : " + value);
|
||||
|
||||
value = manager.doConnections();
|
||||
System.out.println("doConnections : " + value);
|
||||
|
||||
WiiMoteEvent mote = new WiiMoteEvent();
|
||||
|
||||
manager.getStatus(1);
|
||||
System.out.println("Status : \n" + mote);
|
||||
|
||||
System.out.println("");
|
||||
System.out.println("!!!!!!!!!!!!!! Polling !!!!!!!!!");
|
||||
while (true) {
|
||||
manager.specialPoll(mote);
|
||||
System.out.println(mote);
|
||||
mote.EmptyIRPoints();
|
||||
}
|
||||
// manager.closeConnectionsAndShutDown();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user