| 
    
    
      
         
        Data Structures
       | 
    
    
      | struct   | 
      read_req_t | 
    
    
      |   | 
      Data read request structure. More... 
 | 
    
    
      | struct   | 
      vec2b_t | 
    
    
      |   | 
      Unsigned x,y byte vector. More... 
 | 
    
    
      | struct   | 
      vec3b_t | 
    
    
      |   | 
      Unsigned x,y,z byte vector. More... 
 | 
    
    
      | struct   | 
      vec3f_t | 
    
    
      |   | 
      Signed x,y,z float struct. More... 
 | 
    
    
      | struct   | 
      orient_t | 
    
    
      |   | 
      Orientation struct. More... 
 | 
    
    
      | struct   | 
      gforce_t | 
    
    
      |   | 
      Gravity force struct. More... 
 | 
    
    
      | struct   | 
      accel_t | 
    
    
      |   | 
      Accelerometer struct. For any device with an accelerometer. More... 
 | 
    
    
      | struct   | 
      ir_dot_t | 
    
    
      |   | 
      A single IR source. More... 
 | 
    
    
      | struct   | 
      ir_t | 
    
    
      |   | 
      IR struct. Hold all data related to the IR tracking. More... 
 | 
    
    
      | struct   | 
      joystick_t | 
    
    
      |   | 
      Joystick calibration structure. More... 
 | 
    
    
      | struct   | 
      nunchuk_t | 
    
    
      |   | 
      Nunchuk expansion device. More... 
 | 
    
    
      | struct   | 
      classic_ctrl_t | 
    
    
      |   | 
      Classic controller expansion device. More... 
 | 
    
    
      | struct   | 
      guitar_hero_3_t | 
    
    
      |   | 
      Guitar Hero 3 expansion device. More... 
 | 
    
    
      | struct   | 
      expansion_t | 
    
    
      |   | 
      Generic expansion device plugged into wiimote. More... 
 | 
    
    
      | struct   | 
      wiimote_state_t | 
    
    
      |   | 
      Significant data from the previous event. More... 
 | 
    
    
      | struct   | 
      wiimote_t | 
    
    
      |   | 
      Wiimote structure. More... 
 | 
    
    
      
         
        Defines
       | 
    
    
      | 
#define  | 
      
WCONST   const | 
    
    
      | 
#define  | 
      
WIIMOTE_LED_NONE   0x00 | 
    
    
      | 
#define  | 
      
WIIMOTE_LED_1   0x10 | 
    
    
      | 
#define  | 
      
WIIMOTE_LED_2   0x20 | 
    
    
      | 
#define  | 
      
WIIMOTE_LED_3   0x40 | 
    
    
      | 
#define  | 
      
WIIMOTE_LED_4   0x80 | 
    
    
      | 
#define  | 
      
WIIMOTE_BUTTON_TWO   0x0001 | 
    
    
      | 
#define  | 
      
WIIMOTE_BUTTON_ONE   0x0002 | 
    
    
      | 
#define  | 
      
WIIMOTE_BUTTON_B   0x0004 | 
    
    
      | 
#define  | 
      
WIIMOTE_BUTTON_A   0x0008 | 
    
    
      | 
#define  | 
      
WIIMOTE_BUTTON_MINUS   0x0010 | 
    
    
      | 
#define  | 
      
WIIMOTE_BUTTON_ZACCEL_BIT6   0x0020 | 
    
    
      | 
#define  | 
      
WIIMOTE_BUTTON_ZACCEL_BIT7   0x0040 | 
    
    
      | 
#define  | 
      
WIIMOTE_BUTTON_HOME   0x0080 | 
    
    
      | 
#define  | 
      
WIIMOTE_BUTTON_LEFT   0x0100 | 
    
    
      | 
#define  | 
      
WIIMOTE_BUTTON_RIGHT   0x0200 | 
    
    
      | 
#define  | 
      
WIIMOTE_BUTTON_DOWN   0x0400 | 
    
    
      | 
#define  | 
      
WIIMOTE_BUTTON_UP   0x0800 | 
    
    
      | 
#define  | 
      
WIIMOTE_BUTTON_PLUS   0x1000 | 
    
    
      | 
#define  | 
      
WIIMOTE_BUTTON_ZACCEL_BIT4   0x2000 | 
    
    
      | 
#define  | 
      
WIIMOTE_BUTTON_ZACCEL_BIT5   0x4000 | 
    
    
      | 
#define  | 
      
WIIMOTE_BUTTON_UNKNOWN   0x8000 | 
    
    
      | 
#define  | 
      
WIIMOTE_BUTTON_ALL   0x1F9F | 
    
    
      | 
#define  | 
      
NUNCHUK_BUTTON_Z   0x01 | 
    
    
      | 
#define  | 
      
NUNCHUK_BUTTON_C   0x02 | 
    
    
      | 
#define  | 
      
NUNCHUK_BUTTON_ALL   0x03 | 
    
    
      | 
#define  | 
      
CLASSIC_CTRL_BUTTON_UP   0x0001 | 
    
    
      | 
#define  | 
      
CLASSIC_CTRL_BUTTON_LEFT   0x0002 | 
    
    
      | 
#define  | 
      
CLASSIC_CTRL_BUTTON_ZR   0x0004 | 
    
    
      | 
#define  | 
      
CLASSIC_CTRL_BUTTON_X   0x0008 | 
    
    
      | 
#define  | 
      
CLASSIC_CTRL_BUTTON_A   0x0010 | 
    
    
      | 
#define  | 
      
CLASSIC_CTRL_BUTTON_Y   0x0020 | 
    
    
      | 
#define  | 
      
CLASSIC_CTRL_BUTTON_B   0x0040 | 
    
    
      | 
#define  | 
      
CLASSIC_CTRL_BUTTON_ZL   0x0080 | 
    
    
      | 
#define  | 
      
CLASSIC_CTRL_BUTTON_FULL_R   0x0200 | 
    
    
      | 
#define  | 
      
CLASSIC_CTRL_BUTTON_PLUS   0x0400 | 
    
    
      | 
#define  | 
      
CLASSIC_CTRL_BUTTON_HOME   0x0800 | 
    
    
      | 
#define  | 
      
CLASSIC_CTRL_BUTTON_MINUS   0x1000 | 
    
    
      | 
#define  | 
      
CLASSIC_CTRL_BUTTON_FULL_L   0x2000 | 
    
    
      | 
#define  | 
      
CLASSIC_CTRL_BUTTON_DOWN   0x4000 | 
    
    
      | 
#define  | 
      
CLASSIC_CTRL_BUTTON_RIGHT   0x8000 | 
    
    
      | 
#define  | 
      
CLASSIC_CTRL_BUTTON_ALL   0xFEFF | 
    
    
      | 
#define  | 
      
GUITAR_HERO_3_BUTTON_STRUM_UP   0x0001 | 
    
    
      | 
#define  | 
      
GUITAR_HERO_3_BUTTON_YELLOW   0x0008 | 
    
    
      | 
#define  | 
      
GUITAR_HERO_3_BUTTON_GREEN   0x0010 | 
    
    
      | 
#define  | 
      
GUITAR_HERO_3_BUTTON_BLUE   0x0020 | 
    
    
      | 
#define  | 
      
GUITAR_HERO_3_BUTTON_RED   0x0040 | 
    
    
      | 
#define  | 
      
GUITAR_HERO_3_BUTTON_ORANGE   0x0080 | 
    
    
      | 
#define  | 
      
GUITAR_HERO_3_BUTTON_PLUS   0x0400 | 
    
    
      | 
#define  | 
      
GUITAR_HERO_3_BUTTON_MINUS   0x1000 | 
    
    
      | 
#define  | 
      
GUITAR_HERO_3_BUTTON_STRUM_DOWN   0x4000 | 
    
    
      | 
#define  | 
      
GUITAR_HERO_3_BUTTON_ALL   0xFEFF | 
    
    
      | 
#define  | 
      
WIIUSE_SMOOTHING   0x01 | 
    
    
      | 
#define  | 
      
WIIUSE_CONTINUOUS   0x02 | 
    
    
      | 
#define  | 
      
WIIUSE_ORIENT_THRESH   0x04 | 
    
    
      | 
#define  | 
      
WIIUSE_INIT_FLAGS   (WIIUSE_SMOOTHING | WIIUSE_ORIENT_THRESH) | 
    
    
      | 
#define  | 
      
WIIUSE_ORIENT_PRECISION   100.0f | 
    
    
      | 
#define  | 
      
EXP_NONE   0 | 
    
    
      | 
#define  | 
      
EXP_NUNCHUK   1 | 
    
    
      | 
#define  | 
      
EXP_CLASSIC   2 | 
    
    
      | 
#define  | 
      
EXP_GUITAR_HERO_3   3 | 
    
    
      | #define  | 
      
IS_PRESSED(dev, button)   ((dev->btns & button) == button) | 
    
    
      |   | 
      Check if a button is pressed.  
 | 
    
    
      | #define  | 
      
IS_HELD(dev, button)   ((dev->btns_held & button) == button) | 
    
    
      |   | 
      Check if a button is being held.  
 | 
    
    
      | #define  | 
      
IS_RELEASED(dev, button)   ((dev->btns_released & button) == button) | 
    
    
      |   | 
      Check if a button is released on this event. 
       
      This does not mean the button is not pressed, it means 
      this button was just now released.  
 | 
    
    
      | #define  | 
      
IS_JUST_PRESSED(dev, button)   (IS_PRESSED(dev, button) && !IS_HELD(dev, button)) | 
    
    
      |   | 
      Check if a button has just been pressed this event.  
 | 
    
    
      | #define  | 
      
WIIUSE_GET_IR_SENSITIVITY(dev, lvl) | 
    
    
      |   | 
      Return the IR sensitivity level.  
 | 
    
    
      | 
#define  | 
      
WIIUSE_USING_ACC(wm)   ((wm->state & 0x020) == 0x020) | 
    
    
      | 
#define  | 
      
WIIUSE_USING_EXP(wm)   ((wm->state & 0x040) == 0x040) | 
    
    
      | 
#define  | 
      
WIIUSE_USING_IR(wm)   ((wm->state & 0x080) == 0x080) | 
    
    
      | 
#define  | 
      
WIIUSE_USING_SPEAKER(wm)   ((wm->state & 0x100) == 0x100) | 
    
    
      | 
#define  | 
      
WIIUSE_IS_LED_SET(wm, num)   ((wm->leds & WIIMOTE_LED_##num) == WIIMOTE_LED_##num) | 
    
    
      | 
#define  | 
      
MAX_PAYLOAD   32 | 
    
    
      | 
#define  | 
      WIIUSE_EXPORT_DECL | 
    
    
      | 
#define  | 
      WIIUSE_IMPORT_DECL | 
    
    
      | 
#define  | 
      
WIIUSE_EXPORT   WIIUSE_IMPORT_DECL | 
    
    
      
         
        Typedefs
       | 
    
    
      | 
typedef unsigned char  | 
      byte | 
    
    
      | 
typedef char  | 
      sbyte | 
    
    
      | typedef void(*  | 
      
wiiuse_read_cb )(struct wiimote_t *wm, byte *data, unsigned short len) | 
    
    
      |   | 
      Callback that handles a read event.  
 | 
    
    
      | 
typedef struct wiimote_t  | 
      wiimote | 
    
    
      
         
        Enumerations
       | 
    
    
      | enum   | 
      
ir_position_t { WIIUSE_IR_ABOVE, WIIUSE_IR_BELOW } | 
    
    
      | enum   | 
      
aspect_t { WIIUSE_ASPECT_4_3, WIIUSE_ASPECT_16_9 } | 
    
    
      |   | 
      Screen aspect ratio. 
 | 
    
    
      | enum   | 
      
win_bt_stack_t { WIIUSE_STACK_UNKNOWN, WIIUSE_STACK_MS, WIIUSE_STACK_BLUESOLEIL } | 
    
    
      | enum   | 
      
WIIUSE_EVENT_TYPE { 
        WIIUSE_NONE = 0, WIIUSE_EVENT, WIIUSE_STATUS, WIIUSE_CONNECT, 
        WIIUSE_DISCONNECT, WIIUSE_UNEXPECTED_DISCONNECT, WIIUSE_READ_DATA, WIIUSE_NUNCHUK_INSERTED, 
        WIIUSE_NUNCHUK_REMOVED, WIIUSE_CLASSIC_CTRL_INSERTED, WIIUSE_CLASSIC_CTRL_REMOVED, WIIUSE_GUITAR_HERO_3_CTRL_INSERTED, 
        WIIUSE_GUITAR_HERO_3_CTRL_REMOVED 
      } | 
    
    
      |   | 
      Events that wiiuse can generate from a poll. 
 | 
    
    
      
         
        Functions
       | 
    
    
      | WIIUSE_EXPORT const char *  | 
      
wiiuse_version () | 
    
    
      | WIIUSE_EXPORT struct wiimote_t **  | 
      
wiiuse_init (int wiimotes) | 
    
    
      |   | 
      Initialize an array of wiimote structures.  
 | 
    
    
      | WIIUSE_EXPORT void  | 
      
wiiuse_disconnected (struct wiimote_t *wm) | 
    
    
      |   | 
      The wiimote disconnected.  
 | 
    
    
      | 
WIIUSE_EXPORT void  | 
      
wiiuse_cleanup (struct wiimote_t **wm, int wiimotes) | 
    
    
      |   | 
      Clean up wiimote_t array created by wiiuse_init(). 
 | 
    
    
      | WIIUSE_EXPORT void  | 
      
wiiuse_rumble (struct wiimote_t *wm, int status) | 
    
    
      |   | 
      Enable or disable the rumble.  
 | 
    
    
      | WIIUSE_EXPORT void  | 
      
wiiuse_toggle_rumble (struct wiimote_t *wm) | 
    
    
      |   | 
      Toggle the state of the rumble.  
 | 
    
    
      | WIIUSE_EXPORT void  | 
      
wiiuse_set_leds (struct wiimote_t *wm, int leds) | 
    
    
      |   | 
      Set the enabled LEDs.  
 | 
    
    
      | WIIUSE_EXPORT void  | 
      
wiiuse_motion_sensing (struct wiimote_t *wm, int status) | 
    
    
      |   | 
      Set if the wiimote should report motion sensing.  
 | 
    
    
      | WIIUSE_EXPORT int  | 
      
wiiuse_read_data (struct wiimote_t *wm, byte *buffer, unsigned int offset, unsigned short len) | 
    
    
      |   | 
      Read data from the wiimote (event version).  
 | 
    
    
      | WIIUSE_EXPORT int  | 
      
wiiuse_write_data (struct wiimote_t *wm, unsigned int addr, byte *data, byte len) | 
    
    
      |   | 
      Write data to the wiimote.  
 | 
    
    
      | WIIUSE_EXPORT void  | 
      
wiiuse_status (struct wiimote_t *wm) | 
    
    
      |   | 
      Request the wiimote controller status.  
 | 
    
    
      | WIIUSE_EXPORT struct wiimote_t *  | 
      
wiiuse_get_by_id (struct wiimote_t **wm, int wiimotes, int unid) | 
    
    
      |   | 
      Find a wiimote_t structure by its unique identifier.  
 | 
    
    
      | WIIUSE_EXPORT int  | 
      
wiiuse_set_flags (struct wiimote_t *wm, int enable, int disable) | 
    
    
      |   | 
      Set flags for the specified wiimote.  
 | 
    
    
      | WIIUSE_EXPORT float  | 
      
wiiuse_set_smooth_alpha (struct wiimote_t *wm, float alpha) | 
    
    
      |   | 
      Set the wiimote smoothing alpha value.  
 | 
    
    
      | WIIUSE_EXPORT void  | 
      
wiiuse_set_bluetooth_stack (struct wiimote_t **wm, int wiimotes, enum win_bt_stack_t type) | 
    
    
      |   | 
      Set the bluetooth stack type to use.  
 | 
    
    
      | WIIUSE_EXPORT void  | 
      
wiiuse_set_orient_threshold (struct wiimote_t *wm, float threshold) | 
    
    
      |   | 
      Set the orientation event threshold.  
 | 
    
    
      | WIIUSE_EXPORT void  | 
      
wiiuse_resync (struct wiimote_t *wm) | 
    
    
      |   | 
      Try to resync with the wiimote by starting a new handshake.  
 | 
    
    
      | WIIUSE_EXPORT void  | 
      
wiiuse_set_timeout (struct wiimote_t **wm, int wiimotes, byte normal_timeout, byte exp_timeout) | 
    
    
      |   | 
      Set the normal and expansion handshake timeouts.  
 | 
    
    
      | WIIUSE_EXPORT void  | 
      
wiiuse_set_accel_threshold (struct wiimote_t *wm, int threshold) | 
    
    
      |   | 
      Set the accelerometer event threshold.  
 | 
    
    
      | WIIUSE_EXPORT int  | 
      
wiiuse_find (struct wiimote_t **wm, int max_wiimotes, int timeout) | 
    
    
      |   | 
      Find a wiimote or wiimotes.  
 | 
    
    
      | WIIUSE_EXPORT int  | 
      
wiiuse_connect (struct wiimote_t **wm, int wiimotes) | 
    
    
      |   | 
      Connect to a wiimote or wiimotes once an address is known.  
 | 
    
    
      | WIIUSE_EXPORT void  | 
      
wiiuse_disconnect (struct wiimote_t *wm) | 
    
    
      |   | 
      Disconnect a wiimote.  
 | 
    
    
      | WIIUSE_EXPORT int  | 
      
wiiuse_poll (struct wiimote_t **wm, int wiimotes) | 
    
    
      |   | 
      Poll the wiimotes for any events.  
 | 
    
    
      | WIIUSE_EXPORT void  | 
      
wiiuse_set_ir (struct wiimote_t *wm, int status) | 
    
    
      |   | 
      Set if the wiimote should track IR targets.  
 | 
    
    
      | WIIUSE_EXPORT void  | 
      
wiiuse_set_ir_vres (struct wiimote_t *wm, unsigned int x, unsigned int y) | 
    
    
      |   | 
      Set the virtual screen resolution for IR tracking.  
 | 
    
    
      | WIIUSE_EXPORT void  | 
      
wiiuse_set_ir_position (struct wiimote_t *wm, enum ir_position_t pos) | 
    
    
      |   | 
      Set the XY position for the IR cursor.  
 | 
    
    
      | WIIUSE_EXPORT void  | 
      
wiiuse_set_aspect_ratio (struct wiimote_t *wm, enum aspect_t aspect) | 
    
    
      |   | 
      Set the aspect ratio of the TV/monitor.  
 | 
    
    
      | WIIUSE_EXPORT void  | 
      
wiiuse_set_ir_sensitivity (struct wiimote_t *wm, int level) | 
    
    
      |   | 
      Set the IR sensitivity.  
 | 
    
    
      | WIIUSE_EXPORT void  | 
      
wiiuse_set_nunchuk_orient_threshold (struct wiimote_t *wm, float threshold) | 
    
    
      |   | 
      Set the orientation event threshold for the nunchuk.  
 | 
    
    
      | WIIUSE_EXPORT void  | 
      
wiiuse_set_nunchuk_accel_threshold (struct wiimote_t *wm, int threshold) | 
    
    
      |   | 
      Set the accelerometer event threshold for the nunchuk.  
 | 
    
  
  If this file is included from inside the wiiuse source and not from a third party program, then wiimote_internal.h is also included which extends this file.