xbmc
Classes | Macros | Typedefs | Enumerations | Functions
wiiuse.h File Reference

API header file. More...

#include <bluetooth/bluetooth.h>
Include dependency graph for wiiuse.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

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. More...
 
struct  ir_dot_t
 A single IR source. More...
 
struct  ir_t
 IR struct. 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...
 

Macros

#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. More...
 
#define IS_HELD(dev, button)   ((dev->btns_held & button) == button)
 Check if a button is being held. More...
 
#define IS_RELEASED(dev, button)   ((dev->btns_released & button) == button)
 Check if a button is released on this event. More...
 
#define IS_JUST_PRESSED(dev, button)   (IS_PRESSED(dev, button) && !IS_HELD(dev, button))
 Check if a button has just been pressed this event. More...
 
#define WIIUSE_GET_IR_SENSITIVITY(dev, lvl)
 Return the IR sensitivity level. More...
 
#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 enum ir_position_t ir_position_t
 
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. More...
 
typedef struct vec2b_t vec2b_t
 
typedef struct vec3b_t vec3b_t
 
typedef struct vec3f_t vec3f_t
 
typedef struct orient_t orient_t
 
typedef struct gforce_t gforce_t
 
typedef struct accel_t accel_t
 
typedef struct ir_dot_t ir_dot_t
 
typedef enum aspect_t aspect_t
 
typedef struct ir_t ir_t
 
typedef struct joystick_t joystick_t
 
typedef struct nunchuk_t nunchuk_t
 
typedef struct classic_ctrl_t classic_ctrl_t
 
typedef struct guitar_hero_3_t guitar_hero_3_t
 
typedef struct expansion_t expansion_t
 
typedef enum win_bt_stack_t win_bt_stack_t
 
typedef struct wiimote_state_t wiimote_state_t
 
typedef enum WIIUSE_EVENT_TYPE WIIUSE_EVENT_TYPE
 
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 ()
 Returns the version of the library.
 
WIIUSE_EXPORT struct wiimote_t ** wiiuse_init (int wiimotes)
 Initialize an array of wiimote structures. More...
 
WIIUSE_EXPORT void wiiuse_disconnected (struct wiimote_t *wm)
 The wiimote disconnected. More...
 
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. More...
 
WIIUSE_EXPORT void wiiuse_toggle_rumble (struct wiimote_t *wm)
 Toggle the state of the rumble. More...
 
WIIUSE_EXPORT void wiiuse_set_leds (struct wiimote_t *wm, int leds)
 Set the enabled LEDs. More...
 
WIIUSE_EXPORT void wiiuse_motion_sensing (struct wiimote_t *wm, int status)
 Set if the wiimote should report motion sensing. More...
 
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). More...
 
WIIUSE_EXPORT int wiiuse_write_data (struct wiimote_t *wm, unsigned int addr, byte *data, byte len)
 Write data to the wiimote. More...
 
WIIUSE_EXPORT void wiiuse_status (struct wiimote_t *wm)
 Request the wiimote controller status. More...
 
WIIUSE_EXPORT struct wiimote_twiiuse_get_by_id (struct wiimote_t **wm, int wiimotes, int unid)
 Find a wiimote_t structure by its unique identifier. More...
 
WIIUSE_EXPORT int wiiuse_set_flags (struct wiimote_t *wm, int enable, int disable)
 Set flags for the specified wiimote. More...
 
WIIUSE_EXPORT float wiiuse_set_smooth_alpha (struct wiimote_t *wm, float alpha)
 Set the wiimote smoothing alpha value. More...
 
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. More...
 
WIIUSE_EXPORT void wiiuse_set_orient_threshold (struct wiimote_t *wm, float threshold)
 Set the orientation event threshold. More...
 
WIIUSE_EXPORT void wiiuse_resync (struct wiimote_t *wm)
 Try to resync with the wiimote by starting a new handshake. More...
 
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. More...
 
WIIUSE_EXPORT void wiiuse_set_accel_threshold (struct wiimote_t *wm, int threshold)
 Set the accelerometer event threshold. More...
 
WIIUSE_EXPORT int wiiuse_find (struct wiimote_t **wm, int max_wiimotes, int timeout)
 Find a wiimote or wiimotes. More...
 
WIIUSE_EXPORT int wiiuse_connect (struct wiimote_t **wm, int wiimotes)
 Connect to a wiimote or wiimotes once an address is known. More...
 
WIIUSE_EXPORT void wiiuse_disconnect (struct wiimote_t *wm)
 Disconnect a wiimote. More...
 
WIIUSE_EXPORT int wiiuse_poll (struct wiimote_t **wm, int wiimotes)
 Poll the wiimotes for any events. More...
 
WIIUSE_EXPORT void wiiuse_set_ir (struct wiimote_t *wm, int status)
 Set if the wiimote should track IR targets. More...
 
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. More...
 
WIIUSE_EXPORT void wiiuse_set_ir_position (struct wiimote_t *wm, enum ir_position_t pos)
 Set the XY position for the IR cursor. More...
 
WIIUSE_EXPORT void wiiuse_set_aspect_ratio (struct wiimote_t *wm, enum aspect_t aspect)
 Set the aspect ratio of the TV/monitor. More...
 
WIIUSE_EXPORT void wiiuse_set_ir_sensitivity (struct wiimote_t *wm, int level)
 Set the IR sensitivity. More...
 
WIIUSE_EXPORT void wiiuse_set_nunchuk_orient_threshold (struct wiimote_t *wm, float threshold)
 Set the orientation event threshold for the nunchuk. More...
 
WIIUSE_EXPORT void wiiuse_set_nunchuk_accel_threshold (struct wiimote_t *wm, int threshold)
 Set the accelerometer event threshold for the nunchuk. More...
 

Detailed Description

API header file.

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.

Macro Definition Documentation

◆ IS_HELD

#define IS_HELD (   dev,
  button 
)    ((dev->btns_held & button) == button)

Check if a button is being held.

Parameters
devPointer to a wiimote_t or expansion structure.
buttonThe button you are interested in.
Returns
1 if the button is held, 0 if not.

◆ IS_JUST_PRESSED

#define IS_JUST_PRESSED (   dev,
  button 
)    (IS_PRESSED(dev, button) && !IS_HELD(dev, button))

Check if a button has just been pressed this event.

Parameters
devPointer to a wiimote_t or expansion structure.
buttonThe button you are interested in.
Returns
1 if the button is pressed, 0 if not.

◆ IS_PRESSED

#define IS_PRESSED (   dev,
  button 
)    ((dev->btns & button) == button)

Check if a button is pressed.

Parameters
devPointer to a wiimote_t or expansion structure.
buttonThe button you are interested in.
Returns
1 if the button is pressed, 0 if not.

◆ IS_RELEASED

#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.

Parameters
devPointer to a wiimote_t or expansion structure.
buttonThe button you are interested in.
Returns
1 if the button is released, 0 if not.

◆ WIIUSE_GET_IR_SENSITIVITY

#define WIIUSE_GET_IR_SENSITIVITY (   dev,
  lvl 
)
Value:
do { \
if ((wm->state & 0x0200) == 0x0200) *lvl = 1; \
else if ((wm->state & 0x0400) == 0x0400) *lvl = 2; \
else if ((wm->state & 0x0800) == 0x0800) *lvl = 3; \
else if ((wm->state & 0x1000) == 0x1000) *lvl = 4; \
else if ((wm->state & 0x2000) == 0x2000) *lvl = 5; \
else *lvl = 0; \
} while (0)

Return the IR sensitivity level.

Parameters
wmPointer to a wiimote_t structure.
lvl[out] Pointer to an int that will hold the level setting. If no level is set 'lvl' will be set to 0.

Typedef Documentation

◆ wiiuse_read_cb

typedef void(* wiiuse_read_cb) (struct wiimote_t *wm, byte *data, unsigned short len)

Callback that handles a read event.

Parameters
wmPointer to a wiimote_t structure.
dataPointer to the filled data block.
lenLength in bytes of the data block.
See also
wiiuse_init()

A registered function of this type is called automatically by the wiiuse library when the wiimote has returned the full data requested by a previous call to wiiuse_read_data().

Function Documentation

◆ wiiuse_connect()

WIIUSE_EXPORT int wiiuse_connect ( struct wiimote_t **  wm,
int  wiimotes 
)

Connect to a wiimote or wiimotes once an address is known.

Parameters
wmAn array of wiimote_t structures.
wiimotesThe number of wiimote structures in wm.
Returns
The number of wiimotes that successfully connected.
See also
wiiuse_find()
wiiuse_connect_single()
wiiuse_disconnect()

Connect to a number of wiimotes when the address is already set in the wiimote_t structures. These addresses are normally set by the wiiuse_find() function, but can also be set manually.

◆ wiiuse_disconnect()

WIIUSE_EXPORT void wiiuse_disconnect ( struct wiimote_t wm)

Disconnect a wiimote.

Parameters
wmPointer to a wiimote_t structure.
See also
wiiuse_connect()

Note that this will not free the wiimote structure.

◆ wiiuse_disconnected()

WIIUSE_EXPORT void wiiuse_disconnected ( struct wiimote_t wm)

The wiimote disconnected.

Parameters
wmPointer to a wiimote_t structure.

◆ wiiuse_find()

WIIUSE_EXPORT int wiiuse_find ( struct wiimote_t **  wm,
int  max_wiimotes,
int  timeout 
)

Find a wiimote or wiimotes.

Parameters
wmAn array of wiimote_t structures.
max_wiimotesThe number of wiimote structures in wm.
timeoutThe number of seconds before the search times out.
Returns
The number of wiimotes found.
See also
wiimote_connect()

This function will only look for wiimote devices.
When a device is found the address in the structures will be set.
You can then call wiimote_connect() to connect to the found
devices.

◆ wiiuse_get_by_id()

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.

Parameters
wmPointer to a wiimote_t structure.
wiimotesThe number of wiimote_t structures in wm.
unidThe unique identifier to search for.
Returns
Pointer to a wiimote_t structure, or NULL if not found.

◆ wiiuse_init()

WIIUSE_EXPORT struct wiimote_t** wiiuse_init ( int  wiimotes)

Initialize an array of wiimote structures.

Parameters
wiimotesNumber of wiimote_t structures to create.
Returns
An array of initialized wiimote_t structures.
See also
wiiuse_connect()

The array returned by this function can be passed to various functions, including wiiuse_connect().

◆ wiiuse_motion_sensing()

WIIUSE_EXPORT void wiiuse_motion_sensing ( struct wiimote_t wm,
int  status 
)

Set if the wiimote should report motion sensing.

Parameters
wmPointer to a wiimote_t structure.
status1 to enable, 0 to disable.

Since reporting motion sensing sends a lot of data, the wiimote saves power by not transmitting it by default.

◆ wiiuse_poll()

WIIUSE_EXPORT int wiiuse_poll ( struct wiimote_t **  wm,
int  wiimotes 
)

Poll the wiimotes for any events.

Parameters
wmAn array of pointers to wiimote_t structures.
wiimotesThe number of wiimote_t structures in the wm array.
Returns
Returns number of wiimotes that an event has occurred on.

It is necessary to poll the wiimote devices for events that occur. If an event occurs on a particular wiimote, the event variable will be set.

◆ wiiuse_read_data()

WIIUSE_EXPORT int wiiuse_read_data ( struct wiimote_t wm,
byte *  buffer,
unsigned int  addr,
unsigned short  len 
)

Read data from the wiimote (event version).

Parameters
wmPointer to a wiimote_t structure.
bufferAn allocated buffer to store the data as it arrives from the wiimote. Must be persistent in memory and large enough to hold the data.
addrThe address of wiimote memory to read from.
lenThe length of the block to be read.

The library can only handle one data read request at a time because it must keep track of the buffer and other events that are specific to that request. So if a request has already been made, subsequent requests will be added to a pending list and be sent out when the previous finishes.

◆ wiiuse_resync()

WIIUSE_EXPORT void wiiuse_resync ( struct wiimote_t wm)

Try to resync with the wiimote by starting a new handshake.

Parameters
wmPointer to a wiimote_t structure.

◆ wiiuse_rumble()

WIIUSE_EXPORT void wiiuse_rumble ( struct wiimote_t wm,
int  status 
)

Enable or disable the rumble.

Parameters
wmPointer to a wiimote_t structure.
status1 to enable, 0 to disable.

◆ wiiuse_set_accel_threshold()

WIIUSE_EXPORT void wiiuse_set_accel_threshold ( struct wiimote_t wm,
int  threshold 
)

Set the accelerometer event threshold.

Parameters
wmPointer to a wiimote_t structure.
thresholdThe decimal place that should be considered a significant change.

◆ wiiuse_set_aspect_ratio()

WIIUSE_EXPORT void wiiuse_set_aspect_ratio ( struct wiimote_t wm,
enum aspect_t  aspect 
)

Set the aspect ratio of the TV/monitor.

Parameters
wmPointer to a wiimote_t structure.
aspectEither WIIUSE_ASPECT_16_9 or WIIUSE_ASPECT_4_3

◆ wiiuse_set_bluetooth_stack()

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.

Parameters
wmArray of wiimote_t structures.
wiimotesNumber of objects in the wm array.
typeThe type of bluetooth stack to use.

◆ wiiuse_set_flags()

WIIUSE_EXPORT int wiiuse_set_flags ( struct wiimote_t wm,
int  enable,
int  disable 
)

Set flags for the specified wiimote.

Parameters
wmPointer to a wiimote_t structure.
enableFlags to enable.
disableFlags to disable.
Returns
The flags set after 'enable' and 'disable' have been applied.

The values 'enable' and 'disable' may be any flags OR'ed together. Flags are defined in wiiuse.h.

◆ wiiuse_set_ir()

WIIUSE_EXPORT void wiiuse_set_ir ( struct wiimote_t wm,
int  status 
)

Set if the wiimote should track IR targets.

Parameters
wmPointer to a wiimote_t structure.
status1 to enable, 0 to disable.

◆ wiiuse_set_ir_position()

WIIUSE_EXPORT void wiiuse_set_ir_position ( struct wiimote_t wm,
enum ir_position_t  pos 
)

Set the XY position for the IR cursor.

Parameters
wmPointer to a wiimote_t structure.

◆ wiiuse_set_ir_sensitivity()

WIIUSE_EXPORT void wiiuse_set_ir_sensitivity ( struct wiimote_t wm,
int  level 
)

Set the IR sensitivity.

Parameters
wmPointer to a wiimote_t structure.
level1-5, same as Wii system sensitivity setting.

If the level is < 1, then level will be set to 1. If the level is > 5, then level will be set to 5.

◆ wiiuse_set_ir_vres()

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.

Parameters
wmPointer to a wiimote_t structure.
status1 to enable, 0 to disable.

◆ wiiuse_set_leds()

WIIUSE_EXPORT void wiiuse_set_leds ( struct wiimote_t wm,
int  leds 
)

Set the enabled LEDs.

Parameters
wmPointer to a wiimote_t structure.
ledsWhat LEDs to enable.

leds is a bitwise or of WIIMOTE_LED_1, WIIMOTE_LED_2, WIIMOTE_LED_3, or WIIMOTE_LED_4.

◆ wiiuse_set_nunchuk_accel_threshold()

WIIUSE_EXPORT void wiiuse_set_nunchuk_accel_threshold ( struct wiimote_t wm,
int  threshold 
)

Set the accelerometer event threshold for the nunchuk.

Parameters
wmPointer to a wiimote_t structure with a nunchuk attached.
thresholdThe decimal place that should be considered a significant change.

See wiiuse_set_orient_threshold() for details.

◆ wiiuse_set_nunchuk_orient_threshold()

WIIUSE_EXPORT void wiiuse_set_nunchuk_orient_threshold ( struct wiimote_t wm,
float  threshold 
)

Set the orientation event threshold for the nunchuk.

Parameters
wmPointer to a wiimote_t structure with a nunchuk attached.
thresholdThe decimal place that should be considered a significant change.

See wiiuse_set_orient_threshold() for details.

◆ wiiuse_set_orient_threshold()

WIIUSE_EXPORT void wiiuse_set_orient_threshold ( struct wiimote_t wm,
float  threshold 
)

Set the orientation event threshold.

Parameters
wmPointer to a wiimote_t structure.
thresholdThe decimal place that should be considered a significant change.

If threshold is 0.01, and any angle changes by 0.01 then a significant change has occurred and the event callback will be invoked. If threshold is 1 then the angle has to change by a full degree to generate an event.

◆ wiiuse_set_smooth_alpha()

WIIUSE_EXPORT float wiiuse_set_smooth_alpha ( struct wiimote_t wm,
float  alpha 
)

Set the wiimote smoothing alpha value.

Parameters
wmPointer to a wiimote_t structure.
alphaThe alpha value to set. Between 0 and 1.
Returns
Returns the old alpha value.

The alpha value is between 0 and 1 and is used in an exponential smoothing algorithm.

Smoothing is only performed if the WIIMOTE_USE_SMOOTHING is set.

◆ wiiuse_set_timeout()

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.

Parameters
wmArray of wiimote_t structures.
wiimotesNumber of objects in the wm array.
normal_timeoutThe timeout in milliseconds for a normal read.
exp_timeoutThe timeout in millisecondsd to wait for an expansion handshake.

◆ wiiuse_status()

WIIUSE_EXPORT void wiiuse_status ( struct wiimote_t wm)

Request the wiimote controller status.

Parameters
wmPointer to a wiimote_t structure.

Controller status includes: battery level, LED status, expansions

◆ wiiuse_toggle_rumble()

WIIUSE_EXPORT void wiiuse_toggle_rumble ( struct wiimote_t wm)

Toggle the state of the rumble.

Parameters
wmPointer to a wiimote_t structure.

◆ wiiuse_write_data()

WIIUSE_EXPORT int wiiuse_write_data ( struct wiimote_t wm,
unsigned int  addr,
byte *  data,
byte  len 
)

Write data to the wiimote.

Parameters
wmPointer to a wiimote_t structure.
addrThe address to write to.
dataThe data to be written to the memory location.
lenThe length of the block to be written.