
// YOU CAN HAVE UP TO TWO WIIMOTES WITH THIS SUPPORT SOFTWARE.
// HAVING JUST ONE IS FINE.


// YOU NEED THIS IMPORT STATEMENT

import wiimote.*;


   // DATA DECLARATIONS

   WiiEventThread  wiiEventThread1;
   WiiEventThread2 wiiEventThread2;
   WiiEvent wiiEvent[] = new WiiEvent[2];


   // INITIALIZATION

      wiiEventThread1 = new WiiEventThread();
      wiiEventThread2 = new WiiEventThread2();

      wiiEvent[0] = new WiiEvent();
      wiiEvent[1] = new WiiEvent();

      try {
         wiiEventThread1.start();
         wiiEventThread2.start();
      }
      catch (Exception e) { e.printStackTrace(); }


   // TERMINATION

   public void stop() {
      super.stop();
      if (wiiEventThread1 != null) { wiiEventThread1.stop(); wiiEventThread1 = null; }
      if (wiiEventThread2 != null) { wiiEventThread2.stop(); wiiEventThread2 = null; }
      WiiRemote.disconnect();
      WiiRemote2.disconnect();
   }


   // COPYING DATA FROM THE WIIMOTE

      wiiEvent[0].snapshot(wiiEventThread1.event);
      wiiEvent[1].snapshot(wiiEventThread2.event);


   // COMPUTING ROLL AND PITCH FROM x,y,z INERTIAL SENSORS

      double x = wiiEvent[n].x;
      double y = wiiEvent[n].y;
      double z = wiiEvent[n].z;
      roll  = Math.atan2(x, z);
      pitch = Math.asin(y);


   // BOOLEAN VALUED BUTTON PRESS STATES

      wiiEvent[n].a;
      wiiEvent[n].b;
      wiiEvent[n].down;
      wiiEvent[n].home;
      wiiEvent[n].left;
      wiiEvent[n].minus;
      wiiEvent[n].one;
      wiiEvent[n].right;
      wiiEvent[n].two;
      wiiEvent[n].up;


