sdk-core v2026.11.05
PS2 SDK - core tier (build-critical EE/IOP modules)
Loading...
Searching...
No Matches
libpad.h
Go to the documentation of this file.
1/*
2# _____ ___ ____ ___ ____
3# ____| | ____| | | |____|
4# | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5#-----------------------------------------------------------------------
6# Copyright 2001-2004, ps2dev - http://www.ps2dev.org
7# Licenced under Academic Free License version 2.0
8# Review ps2sdk README & LICENSE files for further details.
9*/
10
16
17#ifndef __LIBPAD_H__
18#define __LIBPAD_H__
19
20/*
21 * Button bits
22 */
23#ifndef __INPUT_H__
24#define PAD_LEFT 0x0080
25#define PAD_DOWN 0x0040
26#define PAD_RIGHT 0x0020
27#define PAD_UP 0x0010
28#define PAD_START 0x0008
29#define PAD_R3 0x0004
30#define PAD_L3 0x0002
31#define PAD_SELECT 0x0001
32#define PAD_SQUARE 0x8000
33#define PAD_CROSS 0x4000
34#define PAD_CIRCLE 0x2000
35#define PAD_TRIANGLE 0x1000
36#define PAD_R1 0x0800
37#define PAD_L1 0x0400
38#define PAD_R2 0x0200
39#define PAD_L2 0x0100
40#endif
41/*
42 * Pad states
43 */
44#define PAD_STATE_DISCONN 0x00
45#define PAD_STATE_FINDPAD 0x01
46#define PAD_STATE_FINDCTP1 0x02
47#define PAD_STATE_EXECCMD 0x05
48#define PAD_STATE_STABLE 0x06
49#define PAD_STATE_ERROR 0x07
50
51/*
52 * Pad request states
53 */
54#define PAD_RSTAT_COMPLETE 0x00
55#define PAD_RSTAT_FAILED 0x01
56#define PAD_RSTAT_BUSY 0x02
57
58/*
59 * Connected pad type
60 */
61#define PAD_TYPE_NEJICON 0x2
62#define PAD_TYPE_KONAMIGUN 0x3
63#define PAD_TYPE_DIGITAL 0x4
64#define PAD_TYPE_ANALOG 0x5
65#define PAD_TYPE_NAMCOGUN 0x6
66#define PAD_TYPE_DUALSHOCK 0x7
67#define PAD_TYPE_JOGCON 0xE
68#define PAD_TYPE_EX_TSURICON 0x100
69#define PAD_TYPE_EX_JOGCON 0x300
70/*
71 * padInfoMode values
72 */
73#define PAD_MODECURID 1
74#define PAD_MODECUREXID 2
75#define PAD_MODECUROFFS 3
76#define PAD_MODETABLE 4
77
78/*
79 * padSetMainMode
80 */
81#define PAD_MMODE_DIGITAL 0
82#define PAD_MMODE_DUALSHOCK 1
83
84#define PAD_MMODE_UNLOCK 2
85#define PAD_MMODE_LOCK 3
86
87/*
88 * padInfoAct cmds
89 */
90#define PAD_ACTFUNC 1
91#define PAD_ACTSUB 2
92#define PAD_ACTSIZE 3
93#define PAD_ACTCURR 4
94
97{
98 unsigned char ok;
99 unsigned char mode;
100 unsigned short btns;
101 // joysticks
102 unsigned char rjoy_h;
103 unsigned char rjoy_v;
104 unsigned char ljoy_h;
105 unsigned char ljoy_v;
106 // pressure mode
107 unsigned char right_p;
108 unsigned char left_p;
109 unsigned char up_p;
110 unsigned char down_p;
111 unsigned char triangle_p;
112 unsigned char circle_p;
113 unsigned char cross_p;
114 unsigned char square_p;
115 unsigned char l1_p;
116 unsigned char r1_p;
117 unsigned char l2_p;
118 unsigned char r2_p;
119 unsigned char unkn16[12];
120} __attribute__((packed));
121
122#ifdef __cplusplus
123extern "C" {
124#endif
125
130extern int padInit(int mode);
131
141extern int padPortInit(int mode);
142
150extern int padEnd(void);
151
159extern int padPortOpen(int port, int slot, void *padArea);
160
168extern int padPortClose(int port, int slot);
169
176extern unsigned char padRead(int port, int slot, struct padButtonStatus *data);
177
181extern int padGetState(int port, int slot);
182
184extern unsigned char padGetReqState(int port, int slot);
185
189extern int padSetReqState(int port, int slot, int state);
190
191/*
192 * Debug print functions
193 */
194extern void padStateInt2String(int state, char buf[16]);
195extern void padReqStateInt2String(int state, char buf[16]);
196
199extern int padGetPortMax(void);
200
204extern int padGetSlotMax(int port);
205
209extern int padGetModVersion();
210
215extern int padInfoMode(int port, int slot, int infoMode, int index);
216
221extern int padSetMainMode(int port, int slot, int mode, int lock);
222
224extern int padInfoPressMode(int port, int slot);
225
227extern int padEnterPressMode(int port, int slot);
228
232extern int padExitPressMode(int port, int slot);
233
234/*
235 * Dunno if these need to be exported
236 */
237extern int padGetButtonMask(int port, int slot);
238extern int padSetButtonInfo(int port, int slot, int buttonInfo);
239
244extern unsigned char padInfoAct(int port, int slot, int actuator, int cmd);
245
251extern int padSetActAlign(int port, int slot, const char actAlign[6]);
252
257extern int padSetActDirect(int port, int slot, const char actAlign[6]);
258
265extern int padGetConnection(int port, int slot);
266
267#ifdef __cplusplus
268}
269#endif
270
271#endif /* __LIBPAD_H__ */
int padGetPortMax(void)
Definition libpad.c:744
int padPortOpen(int port, int slot, void *padArea)
Definition libpad.c:465
int padPortInit(int mode)
Definition libpad.c:389
unsigned char padRead(int port, int slot, struct padButtonStatus *data)
Definition libpad.c:615
int padInfoMode(int port, int slot, int infoMode, int index)
Definition libpad.c:808
unsigned char padInfoAct(int port, int slot, int actuator, int cmd)
Definition libpad.c:975
int padExitPressMode(int port, int slot)
Definition libpad.c:912
int padGetModVersion()
Definition libpad.c:795
int padInit(int mode)
Definition libpad.c:307
int padGetConnection(int port, int slot)
Definition libpad.c:1091
int padSetActDirect(int port, int slot, const char actAlign[6])
Definition libpad.c:1059
int padSetReqState(int port, int slot, int state)
Definition libpad.c:709
int padPortClose(int port, int slot)
Definition libpad.c:577
int padEnd(void)
Definition libpad.c:434
int padGetState(int port, int slot)
Definition libpad.c:648
unsigned char padGetReqState(int port, int slot)
Definition libpad.c:690
int padInfoPressMode(int port, int slot)
Definition libpad.c:900
int padSetMainMode(int port, int slot, int mode, int lock)
Definition libpad.c:869
int padEnterPressMode(int port, int slot)
Definition libpad.c:906
int padGetSlotMax(int port)
Definition libpad.c:769
int padSetActAlign(int port, int slot, const char actAlign[6])
Definition libpad.c:1028