diff --git a/WiiUseJ/src/wiiusej/WiiUseApi.java b/WiiUseJ/src/wiiusej/WiiUseApi.java index f9be625..3f169e6 100644 --- a/WiiUseJ/src/wiiusej/WiiUseApi.java +++ b/WiiUseJ/src/wiiusej/WiiUseApi.java @@ -20,192 +20,246 @@ import wiiusej.wiiuseapievents.EventsGatherer; /** * Singleton used to manipulate WiiUse Api. + * * @author guiguito */ public class WiiUseApi { - + static { - System.loadLibrary("libWiiuseJ"); + System.loadLibrary("WiiuseJ"); } - + private static WiiUseApi instance = new WiiUseApi(); - + /** * Get the only instance of WiiUseApi. + * * @return the only instace of WiiUseApi. */ - static WiiUseApi getInstance(){ + static WiiUseApi getInstance() { return instance; - } + } /** * Try to connect to 2 wiimotes. Make them rumble to show they are * connected. - * @param nb number of wiimotes to connect + * + * @param nb + * number of wiimotes to connect + * @param rumble + * make the connected wiimotes rumble * @return 0 if there is an error otherwise it returns the number of * wiimotes connected. - */ - native int doConnections(int nb); + */ + native int doConnections(int nb, boolean rumble); /** * Close connection to the wiimote with the given id. * */ - native void closeConnection(int id); - + native void closeConnection(int id); + /** * Shutdown Wiiuse API. */ native void shutdownApi(); - + /** * Activate rumble on the wiimote with the given id. - * @param id the id of the wiimote. + * + * @param id + * the id of the wiimote. */ - native void activateRumble(int id); - + native void activateRumble(int id); + /** * Deactivate rumble on the wiimote with the given id. * - * @param id the id of the wiimote. + * @param id + * the id of the wiimote. */ - native void deactivateRumble(int id); - + native void deactivateRumble(int id); + /** * Activate IR Tracking on the wiimote with the given id. - * @param id the id of the wiimote. + * + * @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. + * + * @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. + * + * @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. + * + * @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 + * + * @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); - + 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 + * + * @param id + * id of the wiimote concerned + * @param angle + * minimum angle detected by an event */ native void setOrientThreshold(int id, float angle); - + /** * Set how much acceleration must change to generate an event. - * @param id id of the wiimote concerned - * @param value minimum value detected by an event + * + * @param id + * id of the wiimote concerned + * @param value + * minimum value detected by an event */ native void setAccelThreshold(int id, int value); - + /** * Set alpha smoothing parameter for the given id. - * @param id id of the wiimote concerned - * @param value alpha smoothing value + * + * @param id + * id of the wiimote concerned + * @param value + * alpha smoothing value */ native void setAlphaSmoothing(int id, float value); - + /** * Try to resync with the wiimote by starting a new handshake. - * @param id id of the wiimote concerned + * + * @param id + * id of the wiimote concerned */ native void reSync(int id); - + /** - * Make the the accelerometers give smoother results. - * This is set by default. - * @param id the id of the wiimote concerned + * 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); - - /** + native void activateSmoothing(int id); + + /** * Make the the accelerometers give raw results. - * @param id the id of the wiimote concerned + * + * @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); - - /** - * Notify wiiuse that your screen has an aspect ratio of 4/3. - * @param id the id of the wiimote of which we want the status. - */ - native void setScreenRatio43(int id); - - /** - * Notify wiiuse that your screen has an aspect ratio of 16/9. - * @param id the id of the wiimote of which we want the status. - */ - native void setScreenRatio169(int id); - - /** - * Notify wiiuse that the sensor bar is above your screen. - * @param id the id of the wiimote of which we want the status. - */ - native void setSensorBarAboveScreen(int id); - - /** - * Notify wiiuse that the sensor bar is below your screen. - * @param id the id of the wiimote of which we want the status. - */ - native void setSensorBarBelowScreen(int id); - - /** - * Set virtual screen resolution. It is used to automatically - * compute the position of a cursor on this virtual screen - * using the sensor bar. These results come in the IREvent. - * @param id the id of the wiimote of which we want the status. - * @param x x resolution. - * @param y y resolution. - */ - native void setVirtualScreenResolution(int id, int x, int y); - + 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); + + /** + * Notify wiiuse that your screen has an aspect ratio of 4/3. + * + * @param id + * the id of the wiimote of which we want the status. + */ + native void setScreenRatio43(int id); + + /** + * Notify wiiuse that your screen has an aspect ratio of 16/9. + * + * @param id + * the id of the wiimote of which we want the status. + */ + native void setScreenRatio169(int id); + + /** + * Notify wiiuse that the sensor bar is above your screen. + * + * @param id + * the id of the wiimote of which we want the status. + */ + native void setSensorBarAboveScreen(int id); + + /** + * Notify wiiuse that the sensor bar is below your screen. + * + * @param id + * the id of the wiimote of which we want the status. + */ + native void setSensorBarBelowScreen(int id); + + /** + * Set virtual screen resolution. It is used to automatically compute the + * position of a cursor on this virtual screen using the sensor bar. These + * results come in the IREvent. + * + * @param id + * the id of the wiimote of which we want the status. + * @param x + * x resolution. + * @param y + * y resolution. + */ + native void setVirtualScreenResolution(int id, int x, int y); + /** * 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. + * @param id + * the id of the wiimote of which we want the status. */ - native void getStatus(int id); - + native void getStatus(int id); + /** * Check for new Events and Get it. * - * @param gath the object where we store all the new events. + * @param gath + * the object where we store all the new events. */ native void specialPoll(EventsGatherer gath); - - } diff --git a/WiiUseJ/src/wiiusej/WiiUseApiManager.java b/WiiUseJ/src/wiiusej/WiiUseApiManager.java index 647fbd8..2d258d5 100644 --- a/WiiUseJ/src/wiiusej/WiiUseApiManager.java +++ b/WiiUseJ/src/wiiusej/WiiUseApiManager.java @@ -64,12 +64,14 @@ public class WiiUseApiManager extends Thread { * * @param nb * try to connect nb wiimotes + * @param rumble + * make the connected wiimotes rumble * @return an array with connected wiimotes or NULL. */ - public synchronized static Wiimote[] getWiimotes(int nb) { + public synchronized static Wiimote[] getWiimotes(int nb, boolean rumble) { WiiUseApiManager manager = getInstance(); if (manager.connected < 0) { - int nbWiimotes = manager.connectWiimotes(nb); + int nbWiimotes = manager.connectWiimotes(nb, rumble); manager.wiimotes = new Wiimote[nbWiimotes]; for (int i = 1; i <= nbWiimotes; i++) { Wiimote wim = new Wiimote(i, manager); @@ -94,12 +96,14 @@ public class WiiUseApiManager extends Thread { * * @param nb * try to connect nb wiimotes + * @param rumble + * make the connected wiimotes rumble * @return 0 if nothing connected or the number of wiimotes connected. */ - private int connectWiimotes(int nb) { + private int connectWiimotes(int nb, boolean rumble) { nbMaxWiimotes = nb; if (connected < 0) { - connected = wiiuse.doConnections(nb); + connected = wiiuse.doConnections(nb, rumble); return connected; } else {// library not loaded, no wiimotes connected return 0; diff --git a/WiiUseJ/src/wiiusej/test/Main.java b/WiiUseJ/src/wiiusej/test/Main.java index 0f873bb..daaca2a 100644 --- a/WiiUseJ/src/wiiusej/test/Main.java +++ b/WiiUseJ/src/wiiusej/test/Main.java @@ -29,7 +29,7 @@ public class Main { * @param args the command line arguments */ public static void main(String[] args) { - Wiimote[] wiimotes = WiiUseApiManager.getWiimotes(1); + Wiimote[] wiimotes = WiiUseApiManager.getWiimotes(1, true); if (wiimotes.length>0){ WiiuseJGuiTest gui = new WiiuseJGuiTest(wiimotes[0]); gui.setDefaultCloseOperation(gui.EXIT_ON_CLOSE); diff --git a/WiiUseJ/src/wiiusej/test/Tests.java b/WiiUseJ/src/wiiusej/test/Tests.java index f9e20f9..1a82547 100644 --- a/WiiUseJ/src/wiiusej/test/Tests.java +++ b/WiiUseJ/src/wiiusej/test/Tests.java @@ -339,7 +339,7 @@ public class Tests implements WiimoteListener { * @param args */ public static void main(String[] args) { - Wiimote[] wiimotes = WiiUseApiManager.getWiimotes(4); + Wiimote[] wiimotes = WiiUseApiManager.getWiimotes(4, true); if (wiimotes.length > 0) { System.out.println(wiimotes[0]); Tests tests = new Tests(wiimotes[0]); diff --git a/WiiUseJ/src/wiiusej/utils/IRPanel.java b/WiiUseJ/src/wiiusej/utils/IRPanel.java index b4213a1..3352e66 100644 --- a/WiiUseJ/src/wiiusej/utils/IRPanel.java +++ b/WiiUseJ/src/wiiusej/utils/IRPanel.java @@ -131,6 +131,7 @@ public class IRPanel extends javax.swing.JPanel implements WiimoteListener { public void onButtonsEvent(ButtonsEvent arg0) { //nothing + repaint(); } public void onIrEvent(IREvent arg0) {