1#ifndef _REVOLUTION_WPAD_H_
2#define _REVOLUTION_WPAD_H_
12#define WPAD_BUTTON_LEFT (1 << 0)
13#define WPAD_BUTTON_RIGHT (1 << 1)
14#define WPAD_BUTTON_DOWN (1 << 2)
15#define WPAD_BUTTON_UP (1 << 3)
16#define WPAD_BUTTON_PLUS (1 << 4)
17#define WPAD_BUTTON_2 (1 << 8)
18#define WPAD_BUTTON_1 (1 << 9)
19#define WPAD_BUTTON_B (1 << 10)
20#define WPAD_BUTTON_A (1 << 11)
21#define WPAD_BUTTON_MINUS (1 << 12)
22#define WPAD_BUTTON_Z (1 << 13)
23#define WPAD_BUTTON_C (1 << 14)
24#define WPAD_BUTTON_HOME (1 << 15)
26#define WPAD_CL_BUTTON_UP (1 << 0)
27#define WPAD_CL_BUTTON_LEFT (1 << 1)
28#define WPAD_CL_TRIGGER_ZR (1 << 2)
29#define WPAD_CL_BUTTON_X (1 << 3)
30#define WPAD_CL_BUTTON_A (1 << 4)
31#define WPAD_CL_BUTTON_Y (1 << 5)
32#define WPAD_CL_BUTTON_B (1 << 6)
33#define WPAD_CL_TRIGGER_ZL (1 << 7)
34#define WPAD_CL_RESERVED (1 << 8)
35#define WPAD_CL_TRIGGER_R (1 << 9)
36#define WPAD_CL_BUTTON_PLUS (1 << 10)
37#define WPAD_CL_BUTTON_HOME (1 << 11)
38#define WPAD_CL_BUTTON_MINUS (1 << 12)
39#define WPAD_CL_TRIGGER_L (1 << 13)
40#define WPAD_CL_BUTTON_DOWN (1 << 14)
41#define WPAD_CL_BUTTON_RIGHT (1 << 15)
43#define WPAD_DEV_CORE 0
45#define WPAD_DEV_CLASSIC 2
46#define WPAD_DEV_BALANCE_CHECKER 3
48#define WPAD_DEV_MOTION_PLUS 5
49#define WPAD_DEV_MPLS_PT_FS 6
50#define WPAD_DEV_MPLS_PT_CLASSIC 7
51#define WPAD_DEV_TRAIN 16
52#define WPAD_DEV_GUITAR 17
53#define WPAD_DEV_DRUM 18
54#define WPAD_DEV_TAIKO 19
55#define WPAD_DEV_TURNTABLE 20
59#define WPAD_DEV_BULK_1 21
60#define WPAD_DEV_BULK_2 22
61#define WPAD_DEV_BULK_3 23
62#define WPAD_DEV_BULK_4 24
63#define WPAD_DEV_BULK_5 25
64#define WPAD_DEV_BULK_6 26
65#define WPAD_DEV_BULK_7 27
66#define WPAD_DEV_BULK_8 28
68#define WPAD_DEV_MPLS_PT_FUTURE 250
69#define WPAD_DEV_FUTURE 251
70#define WPAD_DEV_NOT_SUPPORTED 252
71#define WPAD_DEV_NONE 253
72#define WPAD_DEV_INITIALIZING 255
74#define WPAD_SENSOR_BAR_POS_BOTTOM 0
75#define WPAD_SENSOR_BAR_POS_TOP 1
89#define WPAD_ESUCCESS WPAD_ERR_OK
90#define WPAD_ENODEV WPAD_ERR_NO_CONTROLLER
91#define WPAD_EBUSY WPAD_ERR_BUSY
92#define WPAD_ETRANSFER WPAD_ERR_TRANSFER
93#define WPAD_EINVAL WPAD_ERR_INVALID
94#define WPAD_ENOPERM WPAD_ERR_NOPERM
95#define WPAD_EBROKEN WPAD_ERR_BROKEN
96#define WPAD_EBADE WPAD_ERR_CORRUPTED
99#define WPAD_CESUCCESS (WPAD_ESUCCESS + 0)
100#define WPAD_CENODEV (WPAD_ENODEV + 0)
101#define WPAD_CEBUSY (WPAD_EBUSY + 0)
102#define WPAD_CETRANSFER (WPAD_ETRANSFER + 0)
103#define WPAD_CEINVAL (WPAD_EINVAL + 0)
104#define WPAD_CENOPERM (WPAD_ENOPERM + 0)
105#define WPAD_CEBROKEN (WPAD_EBROKEN + 0)
106#define WPAD_CEBADE (WPAD_EBADE + 0)
108#define WPAD_DPD_MAX_OBJECTS 4
109#define WPAD_DPD_IMG_RESO_WX 1024
110#define WPAD_DPD_IMG_RESO_WY 768
112#define WPAD_STATE_DISABLED 0
113#define WPAD_STATE_ENABLING 1
114#define WPAD_STATE_ENABLED 2
115#define WPAD_STATE_SETUP 3
116#define WPAD_STATE_DISABLING 4
122#define WPAD_CHAN_INVALID -1
124#define WPAD_MAX_CONTROLLERS 4
126#define WPAD_HIDREP_BASE 0x10
127#define WPAD_HIDREP_VIBRATOR 0x10
128#define WPAD_HIDREP_PORT 0x11
129#define WPAD_HIDREP_REPTYPE 0x12
130#define WPAD_HIDREP_ENDPD 0x13
131#define WPAD_HIDREP_ENSPK 0x14
132#define WPAD_HIDREP_GETSTAT 0x15
133#define WPAD_HIDREP_WRDATA 0x16
134#define WPAD_HIDREP_RDDATA 0x17
135#define WPAD_HIDREP_STRM 0x18
136#define WPAD_HIDREP_MUTE 0x19
137#define WPAD_HIDREP_DPDCSB 0x1A
138#define WPAD_HIDREP_WAIT 0xFF
140#define WPAD_BTN_HCURSOR_MASK (WPAD_BUTTON_LEFT | WPAD_BUTTON_RIGHT)
141#define WPAD_BTN_VCURSOR_MASK (WPAD_BUTTON_UP | WPAD_BUTTON_DOWN)
142#define WPAD_CLB_HCURSOR_MASK (WPAD_CL_BUTTON_LEFT | WPAD_CL_BUTTON_RIGHT)
143#define WPAD_CLB_VCURSOR_MASK (WPAD_CL_BUTTON_UP | WPAD_CL_BUTTON_DOWN)
316#define WPAD_FMT_CORE_BTN 0
317#define WPAD_FMT_CORE_BTN_ACC 1
318#define WPAD_FMT_CORE_BTN_ACC_DPD 2
319#define WPAD_FMT_FS_BTN 3
320#define WPAD_FMT_FS_BTN_ACC 4
321#define WPAD_FMT_FS_BTN_ACC_DPD 5
322#define WPAD_FMT_CLASSIC_BTN 6
323#define WPAD_FMT_CLASSIC_BTN_ACC 7
324#define WPAD_FMT_CLASSIC_BTN_ACC_DPD 8
325#define WPAD_FMT_BTN_ACC_DPD_EXTENDED 9
327#define WPAD_FMT_TRAIN 10
328#define WPAD_FMT_GUITAR 11
329#define WPAD_FMT_BALANCE_CHECKER 12
330#define WPAD_FMT_VSM 13
331#define WPAD_FMT_DRUM 15
332#define WPAD_FMT_MOTION_PLUS 16
333#define WPAD_FMT_TAIKO 17
334#define WPAD_FMT_TURNTABLE 18
335#define WPAD_FMT_BULK 19
336#define WPAD_FMT_UNK_20 20
338#define WPAD_SPEAKER_DISABLE 0
339#define WPAD_SPEAKER_ENABLE 1
340#define WPAD_SPEAKER_MUTE 2
341#define WPAD_SPEAKER_UNMUTE 3
342#define WPAD_SPEAKER_PLAY 4
343#define WPAD_SPEAKER_CMD_05 5
345#define WPAD_MOTOR_STOP 0
346#define WPAD_MOTOR_RUMBLE 1
417#define WPADStartMotor(chan) WPADControlMotor((chan), WPAD_MOTOR_RUMBLE)
418#define WPADStopMotor(chan) WPADControlMotor((chan), WPAD_MOTOR_STOP)
static u32 addr
Definition WUD.c:1668
void free(void *ptr)
Definition alloc.c:328
unsigned int size
Definition __os.h:106
static u32 status
Definition fstload.c:9
static void cb(s32 result, DVDCommandBlock *block)
Definition fstload.c:16
int BOOL
Definition types.h:33
signed char s8
Definition types.h:7
unsigned long u32
Definition types.h:12
signed short int s16
Definition types.h:9
unsigned short int u16
Definition types.h:10
signed long s32
Definition types.h:11
unsigned char u8
Definition types.h:8
IOSResourceRequest * buf[RESPONSE_REQ_BUF_LEN]
Definition ipcclt.c:47
static void callback(u32 param_0)
Definition OSExec.c:308
s16 range_y1
Definition wpad.h:196
s16 range_x1
Definition wpad.h:195
s16 range_y2
Definition wpad.h:198
s8 radius
Definition wpad.h:200
u16 pixel
Definition wpad.h:199
s16 range_x2
Definition wpad.h:197
s16 y
Definition wpad.h:179
s16 x
Definition wpad.h:178
u16 size
Definition wpad.h:180
u8 traceId
Definition wpad.h:181
s16 x
Definition wpad.h:172
s16 z
Definition wpad.h:174
s16 y
Definition wpad.h:173
s8 err
Definition wpad.h:236
s16 accY
Definition wpad.h:232
DPDObject obj[WPAD_DPD_MAX_OBJECTS]
Definition wpad.h:234
u8 bulk[21]
Definition wpad.h:237
u8 dev
Definition wpad.h:235
s16 accZ
Definition wpad.h:233
u16 button
Definition wpad.h:230
u8 padding[1]
Definition wpad.h:238
s16 accX
Definition wpad.h:231
s16 accZ
Definition wpad.h:306
DPDObject obj[WPAD_DPD_MAX_OBJECTS]
Definition wpad.h:307
s16 accX
Definition wpad.h:304
s16 accY
Definition wpad.h:305
u8 dev
Definition wpad.h:308
s8 temp
Definition wpad.h:311
u8 battery
Definition wpad.h:312
u16 press[4]
Definition wpad.h:310
u16 button
Definition wpad.h:303
s8 err
Definition wpad.h:309
u8 clTriggerR
Definition wpad.h:225
s16 clRStickX
Definition wpad.h:222
s16 clLStickY
Definition wpad.h:221
u8 clTriggerL
Definition wpad.h:224
s16 clRStickY
Definition wpad.h:223
WPADStatus base
Definition wpad.h:218
u16 clButton
Definition wpad.h:219
s16 clLStickX
Definition wpad.h:220
s16 fsAccX
Definition wpad.h:210
s8 fsStickY
Definition wpad.h:214
s8 fsStickX
Definition wpad.h:213
s16 fsAccY
Definition wpad.h:211
s16 fsAccZ
Definition wpad.h:212
WPADStatus base
Definition wpad.h:209
u8 battery
Definition wpad.h:165
u8 led
Definition wpad.h:166
u8 protocol
Definition wpad.h:167
BOOL nearempty
Definition wpad.h:164
BOOL attach
Definition wpad.h:162
BOOL lowBat
Definition wpad.h:163
u8 firmware
Definition wpad.h:168
BOOL dpd
Definition wpad.h:160
BOOL speaker
Definition wpad.h:161
s16 clLStickX
Definition wpad.h:288
s16 roll
Definition wpad.h:299
s16 fsAccX
Definition wpad.h:280
s8 err
Definition wpad.h:277
u8 clTriggerL
Definition wpad.h:292
s8 fsStickY
Definition wpad.h:284
s16 yaw
Definition wpad.h:298
s8 fsStickX
Definition wpad.h:283
struct WPADMPStatus::@240::@242 cl
DPDObject obj[WPAD_DPD_MAX_OBJECTS]
Definition wpad.h:275
s16 accY
Definition wpad.h:273
u16 button
Definition wpad.h:271
s16 clLStickY
Definition wpad.h:289
s16 fsAccZ
Definition wpad.h:282
struct WPADMPStatus::@240::@241 fs
u8 clTriggerR
Definition wpad.h:293
u8 stat
Definition wpad.h:296
s16 clRStickX
Definition wpad.h:290
s16 accX
Definition wpad.h:272
s16 accZ
Definition wpad.h:274
union WPADMPStatus::@240 ext
s16 pitch
Definition wpad.h:297
u8 dev
Definition wpad.h:276
s16 clRStickY
Definition wpad.h:291
u16 clButton
Definition wpad.h:287
s16 fsAccY
Definition wpad.h:281
WPADStatus base
Definition wpad.h:204
DPDObjEx exp[WPAD_DPD_MAX_OBJECTS]
Definition wpad.h:205
s8 err
Definition wpad.h:191
u8 dev
Definition wpad.h:190
s16 accX
Definition wpad.h:186
s16 accZ
Definition wpad.h:188
u16 button
Definition wpad.h:185
DPDObject obj[WPAD_DPD_MAX_OBJECTS]
Definition wpad.h:189
s16 accY
Definition wpad.h:187
u16 button
Definition wpad.h:242
s8 err
Definition wpad.h:248
u8 brake
Definition wpad.h:250
s16 accY
Definition wpad.h:244
s16 accX
Definition wpad.h:243
DPDObject obj[WPAD_DPD_MAX_OBJECTS]
Definition wpad.h:246
u8 mascon
Definition wpad.h:251
u8 dev
Definition wpad.h:247
u16 trButton
Definition wpad.h:249
s16 accZ
Definition wpad.h:245
DPDObject obj[WPAD_DPD_MAX_OBJECTS]
Definition wpad.h:259
u8 dev
Definition wpad.h:260
u16 at_0x36[5]
Definition wpad.h:264
s8 err
Definition wpad.h:261
s16 accY
Definition wpad.h:257
u8 at_0x40
Definition wpad.h:265
s16 accX
Definition wpad.h:256
u8 at_0x34
Definition wpad.h:263
s16 accZ
Definition wpad.h:258
u8 at_0x44
Definition wpad.h:267
u16 at_0x2a[5]
Definition wpad.h:262
u16 at_0x42
Definition wpad.h:266
u16 button
Definition wpad.h:255
WPADConnectCallback WPADSetConnectCallback(s32 chan, WPADConnectCallback cb)
void WPADSetCallbackByKPAD(BOOL isKPAD)
WPADSimpleSyncCallback WPADSetSimpleSyncCallback(WPADSimpleSyncCallback cb)
BOOL WPADIsMotorEnabled(void)
void(* WPADSimpleSyncCallback)(s32 result, s32 num)
Definition wpad.h:153
BOOL WPADStartSimpleSync()
s32 WPADGetInfoAsync(s32 chan, WPADInfo *info, WPADCallback callback)
u32 WPADGetLatestIndexInBuf(s32 chan)
s32 WPADControlDpd(s32 chan, u32 command, WPADCallback callback)
BOOL WPADStopSimpleSync(void)
struct WPADStatus WPADStatus
BOOL WPADCancelSyncDevice()
u8 WPADGetSensorBarPosition(void)
u8 WPADGetSpeakerVolume(void)
u32 WPADGetDataFormat(s32 chan)
struct WPADTRStatus WPADTRStatus
void(* WPADCallback)(s32 chan, s32 result)
Definition wpad.h:146
BOOL WPADGetAcceptConnection(void)
void WPADControlMotor(s32 chan, u32 command)
WPADExtensionCallback WPADSetExtensionCallback(s32 chan, WPADExtensionCallback cb)
s32 WPADControlLed(s32 chan, u8 pattern, WPADCallback callback)
void WPADRegisterAllocator(WPADAlloc alloc, WPADFree free)
void __WPADShutdown(void)
BOOL IsBusyStream(s32 chan)
struct WPADStatusEx WPADStatusEx
WPADDpdCommand_et
Definition wpad.h:350
@ WPAD_DPD_EXTENDED
Definition wpad.h:356
@ WPAD_DPD_BASIC
Definition wpad.h:354
@ WPAD_DPD_STANDARD
Definition wpad.h:355
@ WPAD_DPD_DISABLE
Definition wpad.h:351
void WPADEnableMotor(BOOL enabled)
s32 WPADControlSpeaker(s32 chan, u32 command, WPADCallback cb)
void(* WPADInitFunc)(void)
Definition wpad.h:145
struct WPADCLStatus WPADCLStatus
void WPADInit(void)
Definition WPAD.c:321
BOOL WPADSaveConfig(WPADFlushCallback cb)
u8 WPADGetRadioSensitivity(s32 chan)
void WPADGetAddress(s32 chan, u8 *addr)
s32 WPADChannel
Definition wpad.h:157
BOOL(* WPADFree)(void *ptr)
Definition wpad.h:149
BOOL WPADSetAcceptConnection(u8 accept)
struct WPADFSStatus WPADFSStatus
void(* WPADSyncDeviceCallback)(s32 result, s32 num)
Definition wpad.h:150
BOOL WPADIsSpeakerEnabled(s32 chan)
void(* WPADFlushCallback)(u32 result)
Definition wpad.h:154
void WPADSetAutoSamplingBuf(s32 chan, void *buf, u32)
void(* WPADExtensionCallback)(s32 chan, s32 devType)
Definition wpad.h:147
void __WPADReconnect(BOOL)
WPADResult_et
Definition wpad.h:77
@ WPAD_ERR_NOPERM
Definition wpad.h:84
@ WPAD_ERR_TRANSFER
Definition wpad.h:82
@ WPAD_ERR_OK
Definition wpad.h:78
@ WPAD_ERR_BUSY
Definition wpad.h:81
@ WPAD_ERR_CORRUPTED
Definition wpad.h:86
@ WPAD_ERR_NO_CONTROLLER
Definition wpad.h:80
@ WPAD_ERR_INVALID
Definition wpad.h:83
@ WPAD_ERR_BROKEN
Definition wpad.h:85
void WPADDisconnect(s32 chan)
s32 WPADSetDataFormat(s32 chan, u32 fmt)
void(* WPADConnectCallback)(s32 chan, s32 result)
Definition wpad.h:152
WPADSamplingCallback WPADSetSamplingCallback(s32 chan, WPADSamplingCallback cb)
struct WPADMPStatus WPADMPStatus
struct WPADBKStatus WPADBKStatus
void WPADSetAutoSleepTime(u8 minute)
struct DPDObject DPDObject
u8 WPADGetDpdSensitivity(void)
BOOL WPADIsDpdEnabled(s32 chan)
void WPADRead(s32 chan, WPADStatus *status)
s32 WPADProbe(s32 chan, u32 *devType)
void WPADGetAccGravityUnit(s32 chan, u32 type, WPADAcc *acc)
u32 WPADGetWorkMemorySize(void)
u32 WPADDeviceType
Definition wpad.h:156
void(* WPADSamplingCallback)(s32 chan)
Definition wpad.h:151
BOOL WPADIsUsedCallbackByKPAD(void)
u32 WPADDpdCommand
Definition wpad.h:348
void WPADSetSpeakerVolume(u8 volume)
struct WPADVSStatus WPADVSStatus
struct WPADBLStatus WPADBLStatus
BOOL WPADCanSendStreamData(s32 chan)
BOOL WPADStartFastSimpleSync(void)
void *(* WPADAlloc)(u32 size)
Definition wpad.h:148
s32 WPADSendStreamData(s32 chan, void *p_buf, u16 len)
BOOL OnShutdown(BOOL final, u32 event)
Definition WPAD.c:79