save version 0.1. Last version working on wiiuse 0.9 API.
git-svn-id: http://wiiusej.googlecode.com/svn/trunk@40 ae48ae66-6a45-0410-b38e-211266189506
This commit is contained in:
191
tag1/WiiUseJ/src/wiiusej/Wiimote.java
Normal file
191
tag1/WiiUseJ/src/wiiusej/Wiimote.java
Normal file
@@ -0,0 +1,191 @@
|
|||||||
|
package wiiusej;
|
||||||
|
|
||||||
|
import javax.swing.event.EventListenerList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class that represents a wiimote.
|
||||||
|
* You can register as an observer of this wiimote to listen events from it.
|
||||||
|
* You manage it.
|
||||||
|
* @author gduche
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class Wiimote implements WiiUseApiListener {
|
||||||
|
|
||||||
|
private int id;//wiimote id
|
||||||
|
|
||||||
|
private EventListenerList listeners = new EventListenerList();
|
||||||
|
|
||||||
|
private WiiUseApiManager manager;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Contructor.
|
||||||
|
* @param idd id of the wiimote
|
||||||
|
* @param manager manager wo built it.
|
||||||
|
*/
|
||||||
|
public Wiimote(int idd, WiiUseApiManager manager){
|
||||||
|
id = idd;
|
||||||
|
this.manager = manager;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Disconnect this wiimote.
|
||||||
|
*/
|
||||||
|
public void disconnect(){
|
||||||
|
deactivateIRTRacking();
|
||||||
|
deactivateMotionSensing();
|
||||||
|
deactivateRumble();
|
||||||
|
manager.closeConnection(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Activate the rumble.
|
||||||
|
*/
|
||||||
|
public void activateRumble() {
|
||||||
|
manager.activateRumble(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Deactivate the rumble.
|
||||||
|
*/
|
||||||
|
public void deactivateRumble() {
|
||||||
|
manager.deactivateRumble(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Activate IR Tracking.
|
||||||
|
*/
|
||||||
|
public void activateIRTRacking() {
|
||||||
|
manager.activateIRTRacking(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Deactivate IR Tracking.
|
||||||
|
*/
|
||||||
|
public void deactivateIRTRacking() {
|
||||||
|
manager.deactivateIRTRacking(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Activate motion sensing.
|
||||||
|
*/
|
||||||
|
public void activateMotionSensing() {
|
||||||
|
manager.activateMotionSensing(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Deactivate motion sensing.
|
||||||
|
*/
|
||||||
|
public void deactivateMotionSensing() {
|
||||||
|
manager.deactivateMotionSensing(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Activate smoothing.
|
||||||
|
*/
|
||||||
|
public void activateSmoothing() {
|
||||||
|
manager.activateSmoothing(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Deactivate smoothing.
|
||||||
|
*/
|
||||||
|
public void deactivateSmoothing() {
|
||||||
|
manager.deactivateSmoothing(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Activate continuous.
|
||||||
|
*/
|
||||||
|
public void activateContinuous() {
|
||||||
|
manager.activateContinuous(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Deactivate continuous.
|
||||||
|
*/
|
||||||
|
public void deactivateContinuous() {
|
||||||
|
manager.deactivateContinuous(id);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set leds status.
|
||||||
|
*
|
||||||
|
* @param l1
|
||||||
|
* status of led1. True : ON, False : OFF
|
||||||
|
* @param l2
|
||||||
|
* status of led2. True : ON, False : OFF
|
||||||
|
* @param l3
|
||||||
|
* status of led3. True : ON, False : OFF
|
||||||
|
* @param l4
|
||||||
|
* status of led4. True : ON, False : OFF
|
||||||
|
*/
|
||||||
|
public void setLeds(boolean l1, boolean l2, boolean l3, boolean l4) {
|
||||||
|
manager.setLeds(id, l1, l2, l3, l4);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the orientation threshold (minimum angle between two degrees with accelerometer).
|
||||||
|
* @param th
|
||||||
|
* threshold in degrees
|
||||||
|
*/
|
||||||
|
public void setOrientationThreshold(float th) {
|
||||||
|
manager.setOrientationThreshold(id,th);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Status of the wiimote.
|
||||||
|
*/
|
||||||
|
public void getStatus() {
|
||||||
|
manager.getStatus(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void wiimoteEvent(WiiMoteEvent e) {
|
||||||
|
if (e.getWiimoteId() == id){
|
||||||
|
notifyWiiMoteEventListeners(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a WiimoteListener to the listeners list.
|
||||||
|
* @param listener a WiimoteListener
|
||||||
|
*/
|
||||||
|
public void addWiiMoteEventListeners(WiimoteListener listener) {
|
||||||
|
listeners.add(WiimoteListener.class, listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove a WiimoteListener from the listeners list.
|
||||||
|
* @param listener a WiimoteListener
|
||||||
|
*/
|
||||||
|
public void removeWiiMoteEventListeners(WiimoteListener listener) {
|
||||||
|
listeners.remove(WiimoteListener.class, listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the list of WiimoteListener.
|
||||||
|
* @return the list of WiimoteListener.
|
||||||
|
*/
|
||||||
|
public WiimoteListener[] getWiiMoteEventListeners() {
|
||||||
|
return listeners.getListeners(WiimoteListener.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Notify WiimoteListener that an event occured.
|
||||||
|
* @param evt WiimoteEvent occured
|
||||||
|
*/
|
||||||
|
private void notifyWiiMoteEventListeners(WiiMoteEvent evt) {
|
||||||
|
for (WiimoteListener listener : getWiiMoteEventListeners()) {
|
||||||
|
listener.wiimoteEvent(evt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Wiimote with ID : "+id;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user