mirror of
https://github.com/wiiu-env/wut.git
synced 2025-01-08 11:40:42 +01:00
Reformat wpad.h
This commit is contained in:
parent
75038273b5
commit
83583aa80b
@ -10,103 +10,144 @@
|
|||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
#define WPAD_EXT_CORE 0
|
|
||||||
#define WPAD_EXT_NUNCHUK 1
|
|
||||||
#define WPAD_EXT_CLASSIC 2
|
|
||||||
#define WPAD_EXT_MPLUS 5
|
|
||||||
#define WPAD_EXT_MPLUS_NUNCHUK 6
|
|
||||||
#define WPAD_EXT_MPLUS_CLASSIC 7
|
|
||||||
#define WPAD_EXT_PRO_CONTROLLER 31
|
|
||||||
|
|
||||||
#define WPAD_FMT_PRO_CONTROLLER 22
|
typedef struct WPADStatusProController WPADStatusProController;
|
||||||
|
typedef struct WPADVec2D WPADVec2D;
|
||||||
|
|
||||||
#define WPAD_BUTTON_LEFT 0x0001
|
typedef enum WPADChan
|
||||||
#define WPAD_BUTTON_RIGHT 0x0002
|
{
|
||||||
#define WPAD_BUTTON_DOWN 0x0004
|
WPAD_CHAN_0 = 0,
|
||||||
#define WPAD_BUTTON_UP 0x0008
|
WPAD_CHAN_1 = 1,
|
||||||
#define WPAD_BUTTON_PLUS 0x0010
|
WPAD_CHAN_2 = 2,
|
||||||
#define WPAD_BUTTON_2 0x0100
|
WPAD_CHAN_3 = 3,
|
||||||
#define WPAD_BUTTON_1 0x0200
|
} WPADChan;
|
||||||
#define WPAD_BUTTON_B 0x0400
|
|
||||||
#define WPAD_BUTTON_A 0x0800
|
|
||||||
#define WPAD_BUTTON_MINUS 0x1000
|
|
||||||
#define WPAD_BUTTON_Z 0x2000
|
|
||||||
#define WPAD_BUTTON_C 0x4000
|
|
||||||
#define WPAD_BUTTON_HOME 0x8000
|
|
||||||
|
|
||||||
#define WPAD_CLASSIC_BUTTON_UP 0x0001
|
typedef enum WPADDataFormat
|
||||||
#define WPAD_CLASSIC_BUTTON_LEFT 0x0002
|
{
|
||||||
#define WPAD_CLASSIC_BUTTON_ZR 0x0004
|
WPAD_FMT_PRO_CONTROLLER = 22,
|
||||||
#define WPAD_CLASSIC_BUTTON_X 0x0008
|
} WPADDataFormat;
|
||||||
#define WPAD_CLASSIC_BUTTON_A 0x0010
|
|
||||||
#define WPAD_CLASSIC_BUTTON_Y 0x0020
|
|
||||||
#define WPAD_CLASSIC_BUTTON_B 0x0040
|
|
||||||
#define WPAD_CLASSIC_BUTTON_ZL 0x0080
|
|
||||||
#define WPAD_CLASSIC_BUTTON_R 0x0200
|
|
||||||
#define WPAD_CLASSIC_BUTTON_PLUS 0x0400
|
|
||||||
#define WPAD_CLASSIC_BUTTON_HOME 0x0800
|
|
||||||
#define WPAD_CLASSIC_BUTTON_MINUS 0x1000
|
|
||||||
#define WPAD_CLASSIC_BUTTON_L 0x2000
|
|
||||||
#define WPAD_CLASSIC_BUTTON_DOWN 0x4000
|
|
||||||
#define WPAD_CLASSIC_BUTTON_RIGHT 0x8000
|
|
||||||
|
|
||||||
#define WPAD_PRO_BUTTON_UP 0x00000001
|
typedef enum WPADExtensionType
|
||||||
#define WPAD_PRO_BUTTON_LEFT 0x00000002
|
{
|
||||||
#define WPAD_PRO_TRIGGER_ZR 0x00000004
|
WPAD_EXT_CORE = 0,
|
||||||
#define WPAD_PRO_BUTTON_X 0x00000008
|
WPAD_EXT_NUNCHUK = 1,
|
||||||
#define WPAD_PRO_BUTTON_A 0x00000010
|
WPAD_EXT_CLASSIC = 2,
|
||||||
#define WPAD_PRO_BUTTON_Y 0x00000020
|
WPAD_EXT_MPLUS = 5,
|
||||||
#define WPAD_PRO_BUTTON_B 0x00000040
|
WPAD_EXT_MPLUS_NUNCHUK = 6,
|
||||||
#define WPAD_PRO_TRIGGER_ZL 0x00000080
|
WPAD_EXT_MPLUS_CLASSIC = 7,
|
||||||
#define WPAD_PRO_RESERVED 0x00000100
|
WPAD_EXT_PRO_CONTROLLER = 31,
|
||||||
#define WPAD_PRO_TRIGGER_R 0x00000200
|
} WPADExtensionType;
|
||||||
#define WPAD_PRO_BUTTON_PLUS 0x00000400
|
|
||||||
#define WPAD_PRO_BUTTON_HOME 0x00000800
|
|
||||||
#define WPAD_PRO_BUTTON_MINUS 0x00001000
|
|
||||||
#define WPAD_PRO_TRIGGER_L 0x00002000
|
|
||||||
#define WPAD_PRO_BUTTON_DOWN 0x00004000
|
|
||||||
#define WPAD_PRO_BUTTON_RIGHT 0x00008000
|
|
||||||
#define WPAD_PRO_BUTTON_STICK_R 0x00010000
|
|
||||||
#define WPAD_PRO_BUTTON_STICK_L 0x00020000
|
|
||||||
|
|
||||||
#define WPAD_PRO_STICK_L_EMULATION_UP 0x00200000
|
|
||||||
#define WPAD_PRO_STICK_L_EMULATION_DOWN 0x00100000
|
|
||||||
#define WPAD_PRO_STICK_L_EMULATION_LEFT 0x00040000
|
|
||||||
#define WPAD_PRO_STICK_L_EMULATION_RIGHT 0x00080000
|
|
||||||
|
|
||||||
#define WPAD_PRO_STICK_R_EMULATION_UP 0x02000000
|
typedef enum WPADButton
|
||||||
#define WPAD_PRO_STICK_R_EMULATION_DOWN 0x01000000
|
{
|
||||||
#define WPAD_PRO_STICK_R_EMULATION_LEFT 0x00400000
|
WPAD_BUTTON_LEFT = 0x0001,
|
||||||
#define WPAD_PRO_STICK_R_EMULATION_RIGHT 0x00800000
|
WPAD_BUTTON_RIGHT = 0x0002,
|
||||||
|
WPAD_BUTTON_DOWN = 0x0004,
|
||||||
|
WPAD_BUTTON_UP = 0x0008,
|
||||||
|
WPAD_BUTTON_PLUS = 0x0010,
|
||||||
|
WPAD_BUTTON_2 = 0x0100,
|
||||||
|
WPAD_BUTTON_1 = 0x0200,
|
||||||
|
WPAD_BUTTON_B = 0x0400,
|
||||||
|
WPAD_BUTTON_A = 0x0800,
|
||||||
|
WPAD_BUTTON_MINUS = 0x1000,
|
||||||
|
WPAD_BUTTON_Z = 0x2000,
|
||||||
|
WPAD_BUTTON_C = 0x4000,
|
||||||
|
WPAD_BUTTON_HOME = 0x8000,
|
||||||
|
} WPADButton;
|
||||||
|
|
||||||
typedef struct {
|
typedef enum WPADClassicButton
|
||||||
f32 x,y;
|
{
|
||||||
} WPADVec2D;
|
WPAD_CLASSIC_BUTTON_UP = 0x0001,
|
||||||
|
WPAD_CLASSIC_BUTTON_LEFT = 0x0002,
|
||||||
|
WPAD_CLASSIC_BUTTON_ZR = 0x0004,
|
||||||
|
WPAD_CLASSIC_BUTTON_X = 0x0008,
|
||||||
|
WPAD_CLASSIC_BUTTON_A = 0x0010,
|
||||||
|
WPAD_CLASSIC_BUTTON_Y = 0x0020,
|
||||||
|
WPAD_CLASSIC_BUTTON_B = 0x0040,
|
||||||
|
WPAD_CLASSIC_BUTTON_ZL = 0x0080,
|
||||||
|
WPAD_CLASSIC_BUTTON_R = 0x0200,
|
||||||
|
WPAD_CLASSIC_BUTTON_PLUS = 0x0400,
|
||||||
|
WPAD_CLASSIC_BUTTON_HOME = 0x0800,
|
||||||
|
WPAD_CLASSIC_BUTTON_MINUS = 0x1000,
|
||||||
|
WPAD_CLASSIC_BUTTON_L = 0x2000,
|
||||||
|
WPAD_CLASSIC_BUTTON_DOWN = 0x4000,
|
||||||
|
WPAD_CLASSIC_BUTTON_RIGHT = 0x8000,
|
||||||
|
} WPADClassicButton;
|
||||||
|
|
||||||
typedef struct WPADReadData_ {
|
typedef enum WPADProButton
|
||||||
uint8_t unknown[40];
|
{
|
||||||
uint8_t dev;
|
WPAD_PRO_BUTTON_UP = 0x00000001,
|
||||||
uint8_t err;
|
WPAD_PRO_BUTTON_LEFT = 0x00000002,
|
||||||
uint8_t unknown1[2];
|
WPAD_PRO_TRIGGER_ZR = 0x00000004,
|
||||||
uint32_t buttons;
|
WPAD_PRO_BUTTON_X = 0x00000008,
|
||||||
WPADVec2D leftStick;
|
WPAD_PRO_BUTTON_A = 0x00000010,
|
||||||
WPADVec2D rightStick;
|
WPAD_PRO_BUTTON_Y = 0x00000020,
|
||||||
uint8_t unknown2[8];
|
WPAD_PRO_BUTTON_B = 0x00000040,
|
||||||
uint8_t fmt;
|
WPAD_PRO_TRIGGER_ZL = 0x00000080,
|
||||||
}WPADReadData;
|
WPAD_PRO_RESERVED = 0x00000100,
|
||||||
|
WPAD_PRO_TRIGGER_R = 0x00000200,
|
||||||
|
WPAD_PRO_BUTTON_PLUS = 0x00000400,
|
||||||
|
WPAD_PRO_BUTTON_HOME = 0x00000800,
|
||||||
|
WPAD_PRO_BUTTON_MINUS = 0x00001000,
|
||||||
|
WPAD_PRO_TRIGGER_L = 0x00002000,
|
||||||
|
WPAD_PRO_BUTTON_DOWN = 0x00004000,
|
||||||
|
WPAD_PRO_BUTTON_RIGHT = 0x00008000,
|
||||||
|
WPAD_PRO_BUTTON_STICK_R = 0x00010000,
|
||||||
|
WPAD_PRO_BUTTON_STICK_L = 0x00020000,
|
||||||
|
WPAD_PRO_STICK_L_EMULATION_UP = 0x00200000,
|
||||||
|
WPAD_PRO_STICK_L_EMULATION_DOWN = 0x00100000,
|
||||||
|
WPAD_PRO_STICK_L_EMULATION_LEFT = 0x00040000,
|
||||||
|
WPAD_PRO_STICK_L_EMULATION_RIGHT = 0x00080000,
|
||||||
|
WPAD_PRO_STICK_R_EMULATION_UP = 0x02000000,
|
||||||
|
WPAD_PRO_STICK_R_EMULATION_DOWN = 0x01000000,
|
||||||
|
WPAD_PRO_STICK_R_EMULATION_LEFT = 0x00400000,
|
||||||
|
WPAD_PRO_STICK_R_EMULATION_RIGHT = 0x00800000,
|
||||||
|
} WPADProButton;
|
||||||
|
|
||||||
typedef void (* wpad_sampling_callback_t)(int32_t chan);
|
struct WPADVec2D
|
||||||
typedef void (* wpad_extension_callback_t)(int32_t chan, int32_t status);
|
{
|
||||||
typedef void (* wpad_connect_callback_t)(int32_t chan, int32_t status);
|
int16_t x;
|
||||||
|
int16_t y;
|
||||||
|
};
|
||||||
|
CHECK_OFFSET(WPADVec2D, 0x00, x);
|
||||||
|
CHECK_OFFSET(WPADVec2D, 0x02, y);
|
||||||
|
CHECK_SIZE(WPADVec2D, 0x04);
|
||||||
|
|
||||||
|
struct WPADStatusProController
|
||||||
|
{
|
||||||
|
UNKNOWN(0x28);
|
||||||
|
|
||||||
|
//! A value from WPADExtensionType
|
||||||
|
uint8_t extensionType;
|
||||||
|
|
||||||
|
uint8_t err;
|
||||||
|
PADDING(2);
|
||||||
|
uint32_t buttons;
|
||||||
|
WPADVec2D leftStick;
|
||||||
|
WPADVec2D rightStick;
|
||||||
|
UNKNOWN(8);
|
||||||
|
WPADDataFormat dataFormat;
|
||||||
|
};
|
||||||
|
CHECK_OFFSET(WPADStatusProController, 0x28, extensionType);
|
||||||
|
CHECK_OFFSET(WPADStatusProController, 0x29, err);
|
||||||
|
CHECK_OFFSET(WPADStatusProController, 0x2C, buttons);
|
||||||
|
CHECK_OFFSET(WPADStatusProController, 0x30, leftStick);
|
||||||
|
CHECK_OFFSET(WPADStatusProController, 0x34, rightStick);
|
||||||
|
CHECK_OFFSET(WPADStatusProController, 0x40, dataFormat);
|
||||||
|
CHECK_SIZE(WPADStatusProController, 0x44);
|
||||||
|
|
||||||
|
typedef void (*WPADSamplingCallback)(WPADChan chan);
|
||||||
|
typedef void (*WPADExtensionCallback)(WPADChan chan, int32_t status);
|
||||||
|
typedef void (*WPADConnectCallback)(WPADChan chan, int32_t status);
|
||||||
|
|
||||||
int32_t
|
int32_t
|
||||||
WPADProbe (int32_t chan,
|
WPADProbe(WPADChan chan,
|
||||||
uint32_t * pad_type);
|
WPADExtensionType *outExtensionType);
|
||||||
|
|
||||||
int32_t
|
int32_t
|
||||||
WPADSetDataFormat(int32_t chan,
|
WPADSetDataFormat(WPADChan chan,
|
||||||
int32_t format);
|
WPADDataFormat format);
|
||||||
|
|
||||||
void
|
void
|
||||||
WPADEnableURCC(int32_t enable);
|
WPADEnableURCC(int32_t enable);
|
||||||
|
|
||||||
@ -114,7 +155,20 @@ void
|
|||||||
WPADEnableWiiRemote(int32_t enable);
|
WPADEnableWiiRemote(int32_t enable);
|
||||||
|
|
||||||
void
|
void
|
||||||
WPADRead(int32_t chan, void * data);
|
WPADRead(WPADChan chan,
|
||||||
|
void *data);
|
||||||
|
|
||||||
|
WPADConnectCallback
|
||||||
|
WPADSetConnectCallback(WPADChan chan,
|
||||||
|
WPADConnectCallback callback);
|
||||||
|
|
||||||
|
WPADExtensionCallback
|
||||||
|
WPADSetExtensionCallback(WPADChan chan,
|
||||||
|
WPADExtensionCallback callback);
|
||||||
|
|
||||||
|
WPADSamplingCallback
|
||||||
|
WPADSetSamplingCallback(WPADChan chan,
|
||||||
|
WPADSamplingCallback callback);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user