mirror of
https://github.com/wiiu-env/wut.git
synced 2025-01-08 11:40:42 +01:00
Reformat kpad.h
This commit is contained in:
parent
71c6521a38
commit
75038273b5
@ -12,75 +12,137 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef WPADVec2D KPADVec2D;
|
typedef enum WPADChan KPADChan;
|
||||||
|
typedef enum WPADDataFormat KPADDataFormat;
|
||||||
|
typedef enum WPADExtensionType KPADExtensionType;
|
||||||
|
|
||||||
typedef struct _KPADStatus
|
typedef struct KPADStatus KPADStatus;
|
||||||
{
|
typedef struct KPADVec2D KPADVec2D;
|
||||||
//! Indicates what KPADButtons are held down
|
|
||||||
uint32_t hold;
|
|
||||||
|
|
||||||
//! Indicates what KPADButtons have been pressed since last sample
|
typedef enum KPADError
|
||||||
uint32_t trigger;
|
{
|
||||||
|
KPAD_ERROR_OK = 0,
|
||||||
|
} KPADError;
|
||||||
|
|
||||||
//! Indicates what KPADButtons have been released since last sample
|
struct KPADVec2D
|
||||||
uint32_t release;
|
{
|
||||||
|
float x;
|
||||||
uint32_t unused_1[5];
|
float y;
|
||||||
KPADVec2D pos;
|
};
|
||||||
uint32_t unused_2[3];
|
CHECK_OFFSET(KPADVec2D, 0x00, x);
|
||||||
KPADVec2D angle;
|
CHECK_OFFSET(KPADVec2D, 0x04, y);
|
||||||
uint32_t unused_3[8];
|
CHECK_SIZE(KPADVec2D, 0x08);
|
||||||
uint8_t device_type;
|
|
||||||
uint8_t wpad_error;
|
|
||||||
uint8_t pos_valid;
|
|
||||||
uint8_t format;
|
|
||||||
|
|
||||||
union
|
struct KPADStatus
|
||||||
{
|
{
|
||||||
struct
|
//! Indicates what KPADButtons are held down
|
||||||
{
|
uint32_t hold;
|
||||||
KPADVec2D stick;
|
|
||||||
} nunchuck;
|
|
||||||
|
|
||||||
struct
|
//! Indicates what KPADButtons have been pressed since last sample
|
||||||
{
|
uint32_t trigger;
|
||||||
uint32_t btns_h;
|
|
||||||
uint32_t btns_d;
|
|
||||||
uint32_t btns_r;
|
|
||||||
KPADVec2D leftStick;
|
|
||||||
KPADVec2D rightStick;
|
|
||||||
float leftTrigger;
|
|
||||||
float rightTrigger;
|
|
||||||
} classic;
|
|
||||||
|
|
||||||
struct
|
//! Indicates what KPADButtons have been released since last sample
|
||||||
{
|
uint32_t release;
|
||||||
uint32_t hold;
|
|
||||||
uint32_t trigger;
|
|
||||||
uint32_t release;
|
|
||||||
KPADVec2D leftStick;
|
|
||||||
KPADVec2D rightStick;
|
|
||||||
int32_t charging;
|
|
||||||
int32_t wired;
|
|
||||||
} pro;
|
|
||||||
|
|
||||||
uint32_t unused_6[20];
|
UNKNOWN(5 * 4);
|
||||||
};
|
|
||||||
uint32_t unused_7[16];
|
|
||||||
} KPADStatus;
|
|
||||||
|
|
||||||
|
KPADVec2D pos;
|
||||||
|
|
||||||
|
UNKNOWN(3 * 4);
|
||||||
|
|
||||||
|
KPADVec2D angle;
|
||||||
|
|
||||||
|
UNKNOWN(8 * 4);
|
||||||
|
|
||||||
|
//! Value from KPADExtensionType
|
||||||
|
uint8_t extensionType;
|
||||||
|
|
||||||
|
//! Value from KPADError
|
||||||
|
int8_t error;
|
||||||
|
|
||||||
|
uint8_t posValid;
|
||||||
|
|
||||||
|
//! Value from KPADDataFormat
|
||||||
|
uint8_t format;
|
||||||
|
|
||||||
|
// Extension data, check with extensionType to see what is valid to read
|
||||||
|
union
|
||||||
|
{
|
||||||
|
// For WPAD_EXT_NUNCHUK
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
KPADVec2D stick;
|
||||||
|
} nunchuck;
|
||||||
|
|
||||||
|
// For WPAD_EXT_CLASSIC
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
uint32_t hold;
|
||||||
|
uint32_t trigger;
|
||||||
|
uint32_t release;
|
||||||
|
KPADVec2D leftStick;
|
||||||
|
KPADVec2D rightStick;
|
||||||
|
float leftTrigger;
|
||||||
|
float rightTrigger;
|
||||||
|
} classic;
|
||||||
|
|
||||||
|
// For WPAD_EXT_PRO_CONTROLLER
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
uint32_t hold;
|
||||||
|
uint32_t trigger;
|
||||||
|
uint32_t release;
|
||||||
|
KPADVec2D leftStick;
|
||||||
|
KPADVec2D rightStick;
|
||||||
|
int32_t charging;
|
||||||
|
int32_t wired;
|
||||||
|
} pro;
|
||||||
|
|
||||||
|
UNKNOWN(20 * 4);
|
||||||
|
};
|
||||||
|
|
||||||
|
UNKNOWN(16 * 4);
|
||||||
|
};
|
||||||
|
CHECK_OFFSET(KPADStatus, 0x00, hold);
|
||||||
|
CHECK_OFFSET(KPADStatus, 0x04, trigger);
|
||||||
|
CHECK_OFFSET(KPADStatus, 0x08, release);
|
||||||
|
CHECK_OFFSET(KPADStatus, 0x20, pos);
|
||||||
|
CHECK_OFFSET(KPADStatus, 0x34, angle);
|
||||||
|
CHECK_OFFSET(KPADStatus, 0x5C, extensionType);
|
||||||
|
CHECK_OFFSET(KPADStatus, 0x5D, error);
|
||||||
|
CHECK_OFFSET(KPADStatus, 0x5E, posValid);
|
||||||
|
CHECK_OFFSET(KPADStatus, 0x5F, format);
|
||||||
|
// For WPAD_EXT_NUNCHUK
|
||||||
|
CHECK_OFFSET(KPADStatus, 0x60, nunchuck.stick);
|
||||||
|
// For WPAD_EXT_CLASSIC
|
||||||
|
CHECK_OFFSET(KPADStatus, 0x60, classic.hold);
|
||||||
|
CHECK_OFFSET(KPADStatus, 0x64, classic.trigger);
|
||||||
|
CHECK_OFFSET(KPADStatus, 0x68, classic.release);
|
||||||
|
CHECK_OFFSET(KPADStatus, 0x6C, classic.leftStick);
|
||||||
|
CHECK_OFFSET(KPADStatus, 0x74, classic.rightStick);
|
||||||
|
CHECK_OFFSET(KPADStatus, 0x7C, classic.leftTrigger);
|
||||||
|
CHECK_OFFSET(KPADStatus, 0x80, classic.rightTrigger);
|
||||||
|
// For WPAD_EXT_PRO_CONTROLLER
|
||||||
|
CHECK_OFFSET(KPADStatus, 0x60, pro.hold);
|
||||||
|
CHECK_OFFSET(KPADStatus, 0x64, pro.trigger);
|
||||||
|
CHECK_OFFSET(KPADStatus, 0x68, pro.release);
|
||||||
|
CHECK_OFFSET(KPADStatus, 0x6C, pro.leftStick);
|
||||||
|
CHECK_OFFSET(KPADStatus, 0x74, pro.rightStick);
|
||||||
|
CHECK_OFFSET(KPADStatus, 0x7C, pro.charging);
|
||||||
|
CHECK_OFFSET(KPADStatus, 0x80, pro.wired);
|
||||||
|
CHECK_SIZE(KPADStatus, 0xF0);
|
||||||
|
|
||||||
void
|
void
|
||||||
KPADInit (void);
|
KPADInit();
|
||||||
|
|
||||||
int32_t
|
int32_t
|
||||||
KPADRead(int32_t chan,
|
KPADRead(KPADChan chan,
|
||||||
void * data,
|
KPADStatus *data,
|
||||||
uint32_t size);
|
uint32_t size);
|
||||||
|
|
||||||
int32_t
|
int32_t
|
||||||
KPADReadEx(int32_t chan,
|
KPADReadEx(KPADChan chan,
|
||||||
KPADStatus * data,
|
KPADStatus *data,
|
||||||
uint32_t size,
|
uint32_t size,
|
||||||
int32_t *error);
|
int32_t *error);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user