#include <cafe/pads/wpad/wpad.h>

#define WPAD_CHAN0               0
#define WPAD_CHAN1               1
#define WPAD_CHAN2               2
#define WPAD_CHAN3               3

typedef void (*WPADCallback) ( s32 chan, s32 result );

s32 WPADGetInfoAsync( s32 chan, WPADInfo *info, WPADCallback callback );


chan One of the WPAD_CHANn values.
info A pointer to WPADInfo that copies the obtained information.
callback Callback function to report on the result.

Return Values

WPAD_ERR_NONEThe WPAD library received a command.
WPAD_ERR_NO_CONTROLLERThe connection was broken.
WPAD_ERR_BUSYThe WPAD library was unable to receive a command.


Gets the status of the Wii remote for the specified channel. This function registers the status-getting command in the WPAD library. The WPAD library processes registered commands when other commands are not running.

Problems may arise if this function is called too frequently. For example, sound may not play from the Wii remote speaker. This function is also used by the HOME Menu library, so be particularly careful about calling this function when the HOME Menu is displayed.

The following status types are available.

dpdThe Pointer's operational status.
speakerThe speaker's operational status.
attachExternal extension controller connection status.
lowBatWhether the indicator brightness is dropping. Voltages that change the indicator brightness exhibit hysteresis. The brightness will drop when the battery level reaches WPAD_BATTERY_LEVEL_LOW, but the brightness will not be restored immediately even if the battery level changes to WPAD_BATTERY_LEVEL_MEDIUM afterwards.
nearemptyWhether there is a small amount of audio data left in the sound buffer.
batteryThe battery level, indicated on a scale of five (WPAD_BATTERY_LEVEL_*). Indicates how much battery charge currently remains.
ledThe illumination status (WPAD_LED_CHAN_*) of the four Player Indicators.
protocolNot used.
firmwareNot used.

When a callback function has been set, the callback function is called together with the processing result. When the return value is WPAD_ERR_NONE, the callback function is called when the process is completed. Otherwise, it is called before the function escapes. The following error codes are passed to the callback function.

WPAD_ERR_NONEStatus was retrieved normally.
WPAD_ERR_BUSYThe WPAD library was unable to receive a command. Call it again later.
WPAD_ERR_TRANSFERA communications error prevented normal processing of the command.
WPAD_ERR_NO_CONTROLLERThe connection was broken.

Do Not Call From

Background Do not call this function from the background.
Interrupt handler Do not call this function from any interrupt handler.
Exception handler Do not call this function from any exception handler.
Multiple Cores Do not call this function from more than one Core.

See Also


Revision History

2014/03/05 Fixed WPADInfo struct and info param.
2013/05/08 Automated cleanup pass.
2009/11/27 Added precaution regarding use while HOME Menu is displaying.
2009/09/24 Explained the timing of the call to the callback function.
2008/07/08 Added explanations related to lowBat and battery.
2007/09/18 Added nearempty to WPADInfo.
2006/11/29 Added WPAD_ERR_BUSY, which had been left out of the error codes passed by the callback.
2006/08/15 Added WPADInfo to See Also.
2006/06/19 Initial version.