Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
pad.h
Go to the documentation of this file.
1#ifndef _DOLPHIN_PAD_H_
2#define _DOLPHIN_PAD_H_
3
4#ifdef __REVOLUTION_SDK__
5#include <revolution/pad.h>
6#else
7#include <dolphin/types.h>
8
9#ifdef __cplusplus
10extern "C" {
11#endif
12
13#define PAD_SPEC_0 0
14#define PAD_SPEC_1 1
15#define PAD_SPEC_2 2
16#define PAD_SPEC_3 3
17#define PAD_SPEC_4 4
18#define PAD_SPEC_5 5
19
20#define PAD_MOTOR_STOP 0
21#define PAD_MOTOR_RUMBLE 1
22#define PAD_MOTOR_STOP_HARD 2
23
24#define PAD_CHAN0_BIT 0x80000000
25#define PAD_CHAN1_BIT 0x40000000
26#define PAD_CHAN2_BIT 0x20000000
27#define PAD_CHAN3_BIT 0x10000000
28
29#define PAD_MAX_CONTROLLERS 4
30
31#define PAD_BUTTON_LEFT (1 << 0) // 0x0001
32#define PAD_BUTTON_RIGHT (1 << 1) // 0x0002
33#define PAD_BUTTON_DOWN (1 << 2) // 0x0004
34#define PAD_BUTTON_UP (1 << 3) // 0x0008
35#define PAD_TRIGGER_Z (1 << 4) // 0x0010
36#define PAD_TRIGGER_R (1 << 5) // 0x0020
37#define PAD_TRIGGER_L (1 << 6) // 0x0040
38#define PAD_BUTTON_A (1 << 8) // 0x0100
39#define PAD_BUTTON_B (1 << 9) // 0x0200
40#define PAD_BUTTON_X (1 << 10) // 0x0400
41#define PAD_BUTTON_Y (1 << 11) // 0x0800
42#define PAD_BUTTON_MENU (1 << 12) // 0x1000
43#define PAD_BUTTON_START (1 << 12) // 0x1000
44
45#define PAD_ERR_NONE 0
46#define PAD_ERR_NO_CONTROLLER -1
47#define PAD_ERR_NOT_READY -2
48#define PAD_ERR_TRANSFER -3
49
50#define RES_WIRELESS_LITE 0x40000
51
52typedef struct PADStatus {
53 /* 0x00 */ u16 button;
54 /* 0x02 */ s8 stickX;
55 /* 0x03 */ s8 stickY;
56 /* 0x04 */ s8 substickX;
57 /* 0x05 */ s8 substickY;
58 /* 0x06 */ u8 triggerLeft;
59 /* 0x07 */ u8 triggerRight;
60 /* 0x08 */ u8 analogA;
61 /* 0x09 */ u8 analogB;
62 /* 0x0A */ s8 err;
64
77
78typedef void (*PADSamplingCallback)(void);
79
80// Pad
81int PADReset(u32 mask);
85void PADSetSamplingRate(u32 msec);
86void __PADTestSamplingRate(u32 tvmode);
87void PADControlAllMotors(const u32* commandArray);
88void PADControlMotor(s32 chan, u32 command);
89void PADSetSpec(u32 spec);
91int PADGetType(s32 chan, u32* type);
92BOOL PADSync(void);
95BOOL PADIsBarrel(s32 chan);
96
98
99// Padclamp
102
103#ifdef __cplusplus
104}
105#endif
106
107#endif
108#endif
u32 mode
Definition GXTev.c:56
void PADControlAllMotors(const u32 *commandArray)
Definition Pad.c:490
BOOL PADIsBarrel(s32 chan)
Definition Pad.c:831
BOOL __PADDisableRecalibration(BOOL disable)
Definition Pad.c:802
struct PADStatus PADStatus
PADSamplingCallback PADSetSamplingCallback(PADSamplingCallback callback)
Definition Pad.c:788
u32 PADGetSpec()
Definition Pad.c:561
int PADReset(u32 mask)
Definition Pad.c:302
BOOL PADSync(void)
Definition Pad.c:728
void PADControlMotor(s32 chan, u32 command)
Definition Pad.c:520
BOOL PADInit()
Definition Pad.c:358
BOOL PADRecalibrate(u32 mask)
Definition Pad.c:331
int PADGetType(s32 chan, u32 *type)
Definition Pad.c:717
void PADSetSamplingRate(u32 msec)
Definition Pad.c:480
void PADClampCircle(PADStatus *status)
Definition Padclamp.c:142
void PADSetSpec(u32 spec)
Definition Pad.c:540
void PADClamp(PADStatus *status)
Definition Padclamp.c:129
u32 PADRead(PADStatus *status)
Definition Pad.c:390
void PADSetAnalogMode(u32 mode)
Definition Pad.c:732
int BOOL
Definition types.h:33
signed char s8
Definition types.h:7
unsigned long u32
Definition types.h:12
unsigned short int u16
Definition types.h:10
signed long s32
Definition types.h:11
unsigned char u8
Definition types.h:8
static u32 status
Definition fstload.c:9
static void callback(u32 param_0)
Definition OSExec.c:308
struct PADClampRegion PADClampRegion
void __PADTestSamplingRate(u32 tvmode)
Definition Pad.c:485
void(* PADSamplingCallback)(void)
Definition pad.h:75
Definition pad.h:65
u8 maxTrigger
Definition pad.h:67
s8 xyStick
Definition pad.h:70
s8 radStick
Definition pad.h:74
s8 minSubstick
Definition pad.h:71
s8 radSubstick
Definition pad.h:75
s8 xySubstick
Definition pad.h:73
u8 minTrigger
Definition pad.h:66
s8 maxStick
Definition pad.h:69
s8 maxSubstick
Definition pad.h:72
s8 minStick
Definition pad.h:68
Definition pad.h:52
u8 triggerLeft
Definition pad.h:58
s8 stickY
Definition pad.h:55
s8 substickY
Definition pad.h:57
s8 stickX
Definition pad.h:54
u8 analogA
Definition pad.h:60
u8 triggerRight
Definition pad.h:59
u16 button
Definition pad.h:53
u8 analogB
Definition pad.h:61
s8 substickX
Definition pad.h:56
s8 err
Definition pad.h:62