ps2sdk  1.1
A collection of Open Source libraries used for developing applications on Sony's PlayStation 2® (PS2).
libmouse.h File Reference
#include <ps2mouse.h>
+ Include dependency graph for libmouse.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Typedefs

typedef mouse_data PS2MouseData
 

Functions

int PS2MouseInit (void)
 
int PS2MouseRead (PS2MouseData *)
 
int PS2MouseSetReadMode (u32 readMode)
 
u32 PS2MouseGetReadMode ()
 
int PS2MouseSetThres (u32 thres)
 
u32 PS2MouseGetThres ()
 
int PS2MouseSetAccel (float accel)
 
float PS2MouseGetAccel ()
 
int PS2MouseSetBoundary (int minx, int maxx, int miny, int maxy)
 
int PS2MouseGetBoundary (int *minx, int *maxx, int *miny, int *maxy)
 
int PS2MouseSetPosition (int x, int y)
 
int PS2MouseReset ()
 
u32 PS2MouseEnum ()
 
int PS2MouseSetDblClickTime (u32 msec)
 
u32 PS2MouseGetDblClickTIme ()
 
u32 PS2MouseGetVersion ()
 

Detailed Description

USB Mouse Driver for PS2

Definition in file libmouse.h.

Typedef Documentation

◆ PS2MouseData

Definition at line 21 of file libmouse.h.

Function Documentation

◆ PS2MouseEnum()

u32 PS2MouseEnum ( )

Definition at line 205 of file libmouse.c.

207 {
208  u32* uncached = (u32 *) UNCACHED_SEG(&buffer.data);
209 
210  if (SifCallRpc(&mouseif, PS2MOUSE_ENUM, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
211  return -1;
212 
213  return uncached[0];
214 }
#define UNCACHED_SEG(x)
Definition: kernel.h:35
char buffer[128]
Definition: libmouse.c:25
static SifRpcClientData_t mouseif
Definition: libmouse.c:23
#define PS2MOUSE_ENUM
Definition: ps2mouse.h:54
int SifCallRpc(SifRpcClientData_t *client, int rpc_number, int mode, void *send, int ssize, void *receive, int rsize, SifRpcEndFunc_t end_function, void *end_param)
#define NULL
Definition: tamtypes.h:91
unsigned int u32
Definition: tamtypes.h:30

References buffer, mouseif, NULL, PS2MOUSE_ENUM, SifCallRpc(), and UNCACHED_SEG.

◆ PS2MouseGetAccel()

float PS2MouseGetAccel ( )

Definition at line 140 of file libmouse.c.

142 {
143  u32* uncached = (u32 *) UNCACHED_SEG(&buffer.accel);
144  u32 accel_fixed;
145 
146  if (SifCallRpc(&mouseif, PS2MOUSE_GETACCEL, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
147  return -1;
148 
149  accel_fixed = uncached[0];
150 
151  return ((float) accel_fixed) / 65536.0 ;
152 }
#define PS2MOUSE_GETACCEL
Definition: ps2mouse.h:49

References buffer, mouseif, NULL, PS2MOUSE_GETACCEL, SifCallRpc(), and UNCACHED_SEG.

◆ PS2MouseGetBoundary()

int PS2MouseGetBoundary ( int *  minx,
int *  maxx,
int *  miny,
int *  maxy 
)

Definition at line 168 of file libmouse.c.

170 {
171  struct mbounds* uncached = (struct mbounds *) UNCACHED_SEG(&buffer.bounds);
172 
173  if (SifCallRpc(&mouseif, PS2MOUSE_GETBOUNDARY, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
174  return -1;
175 
176  *minx = uncached->minx;
177  *maxx = uncached->maxx;
178  *miny = uncached->miny;
179  *maxy = uncached->maxy;
180 
181  return 1;
182 }
s32 maxx
Definition: libmouse.c:30
s32 maxy
Definition: libmouse.c:31
s32 miny
Definition: libmouse.c:31
s32 minx
Definition: libmouse.c:30
#define PS2MOUSE_GETBOUNDARY
Definition: ps2mouse.h:51

References buffer, maxx, maxy, minx, miny, mouseif, NULL, PS2MOUSE_GETBOUNDARY, SifCallRpc(), and UNCACHED_SEG.

◆ PS2MouseGetDblClickTIme()

u32 PS2MouseGetDblClickTIme ( )

Definition at line 238 of file libmouse.c.

240 {
241  u32* uncached = (u32 *) UNCACHED_SEG(&buffer.time);
242 
243  if (SifCallRpc(&mouseif, PS2MOUSE_GETDBLCLICKTIME, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
244  return -1;
245 
246  return uncached[0];
247 }
#define PS2MOUSE_GETDBLCLICKTIME
Definition: ps2mouse.h:56

References buffer, mouseif, NULL, PS2MOUSE_GETDBLCLICKTIME, SifCallRpc(), and UNCACHED_SEG.

◆ PS2MouseGetReadMode()

u32 PS2MouseGetReadMode ( )

Gets the current read mode

Definition at line 94 of file libmouse.c.

96 {
97  u32 *uncached = (u32 *) UNCACHED_SEG(&buffer.mode);
98 
99  if (SifCallRpc(&mouseif, PS2MOUSE_GETREADMODE, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
100  return 0xFF;
101 
102  return uncached[0];
103 }
#define PS2MOUSE_GETREADMODE
Definition: ps2mouse.h:45

References buffer, mouseif, NULL, PS2MOUSE_GETREADMODE, SifCallRpc(), and UNCACHED_SEG.

◆ PS2MouseGetThres()

u32 PS2MouseGetThres ( )

Definition at line 115 of file libmouse.c.

117 {
118  u32* uncached = (u32 *) UNCACHED_SEG(&buffer.thres);
119  if (SifCallRpc(&mouseif, PS2MOUSE_GETTHRES, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
120  return 0;
121 
122  return uncached[0];
123 }
#define PS2MOUSE_GETTHRES
Definition: ps2mouse.h:47

References buffer, mouseif, NULL, PS2MOUSE_GETTHRES, SifCallRpc(), and UNCACHED_SEG.

◆ PS2MouseGetVersion()

u32 PS2MouseGetVersion ( )

Definition at line 216 of file libmouse.c.

218 {
219  u32* uncached = (u32 *) UNCACHED_SEG(&buffer.data);
220 
221  if (SifCallRpc(&mouseif, PS2MOUSE_GETVERSION, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
222  return -1;
223 
224  return uncached[0];
225 }
#define PS2MOUSE_GETVERSION
Definition: ps2mouse.h:57

References buffer, mouseif, NULL, PS2MOUSE_GETVERSION, SifCallRpc(), and UNCACHED_SEG.

◆ PS2MouseInit()

int PS2MouseInit ( void  )

Initialise the RPC library

Definition at line 41 of file libmouse.c.

43 {
44  if(mouse_init)
45  {
46  printf("PS2Mouse Library already initialised\n");
47  return 0;
48  }
49 
51 
52  do {
53  if (SifBindRpc(&mouseif, PS2MOUSE_BIND_RPC_ID, 0) < 0) {
54  return -1;
55  }
56  nopdelay();
57  } while(!mouseif.server);
58 
59  mouse_init = 1;
60 
61  return 1;
62 }
static void nopdelay(void)
Definition: kernel.h:141
static int mouse_init
Definition: libmouse.c:39
#define PS2MOUSE_BIND_RPC_ID
Definition: ps2mouse.h:42
int SifBindRpc(SifRpcClientData_t *client, int rpc_number, int mode)
struct t_SifRpcServerData * server
Definition: sifrpc.h:142

References mouse_init, mouseif, nopdelay(), NULL, PS2MOUSE_BIND_RPC_ID, SifRpcClientData_t::server, and SifBindRpc().

◆ PS2MouseRead()

int PS2MouseRead ( PS2MouseData data)

Reads the current mouse data (depending on read mode)

Definition at line 64 of file libmouse.c.

66 {
67  u8* uncached = UNCACHED_SEG(buffer.buffer);
68 
69  if(!data)
70  {
71  return -1;
72  }
73 
74  if (SifCallRpc(&mouseif, PS2MOUSE_READ, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
75  return -1;
76 
77 
78  memcpy(data, uncached, sizeof(PS2MouseData));
79  // printf("MouseRead %d %d %d %d\n", data->x, data->y, data->wheel, data->buttons);
80 
81  return 1;
82 }
u32 data
Definition: libmouse.c:36
#define PS2MOUSE_READ
Definition: ps2mouse.h:43
unsigned char u8
Definition: tamtypes.h:23

References buffer, data, mouseif, NULL, PS2MOUSE_READ, SifCallRpc(), and UNCACHED_SEG.

◆ PS2MouseReset()

int PS2MouseReset ( )

Definition at line 196 of file libmouse.c.

198 {
199  if (SifCallRpc(&mouseif, PS2MOUSE_RESET, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
200  return -1;
201 
202  return 1;
203 }
#define PS2MOUSE_RESET
Definition: ps2mouse.h:53

References buffer, mouseif, NULL, PS2MOUSE_RESET, and SifCallRpc().

◆ PS2MouseSetAccel()

int PS2MouseSetAccel ( float  accel)

Definition at line 125 of file libmouse.c.

127 {
128  u32 accel_fixed;
129 
130  if(accel < 0) return -1;
131 
132  accel_fixed = (u32) (accel * 65536.0);
133  buffer.accel = accel_fixed;
134  if (SifCallRpc(&mouseif, PS2MOUSE_SETACCEL, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
135  return -1;
136 
137  return 1;
138 }
u32 accel
Definition: libmouse.c:27
#define PS2MOUSE_SETACCEL
Definition: ps2mouse.h:48

References accel, buffer, mouseif, NULL, PS2MOUSE_SETACCEL, and SifCallRpc().

◆ PS2MouseSetBoundary()

int PS2MouseSetBoundary ( int  minx,
int  maxx,
int  miny,
int  maxy 
)

Definition at line 154 of file libmouse.c.

156 {
157  buffer.bounds.minx = minx;
158  buffer.bounds.maxx = maxx;
159  buffer.bounds.miny = miny;
160  buffer.bounds.maxy = maxy;
161 
162  if (SifCallRpc(&mouseif, PS2MOUSE_SETBOUNDARY, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
163  return -1;
164 
165  return 1;
166 }
#define PS2MOUSE_SETBOUNDARY
Definition: ps2mouse.h:50

References buffer, maxx, maxy, minx, miny, mouseif, NULL, PS2MOUSE_SETBOUNDARY, and SifCallRpc().

◆ PS2MouseSetDblClickTime()

int PS2MouseSetDblClickTime ( u32  msec)

Definition at line 227 of file libmouse.c.

229 {
230  buffer.time = msec;
231 
232  if (SifCallRpc(&mouseif, PS2MOUSE_SETDBLCLICKTIME, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
233  return -1;
234 
235  return 1;
236 }
#define PS2MOUSE_SETDBLCLICKTIME
Definition: ps2mouse.h:55

References buffer, mouseif, NULL, PS2MOUSE_SETDBLCLICKTIME, and SifCallRpc().

◆ PS2MouseSetPosition()

int PS2MouseSetPosition ( int  x,
int  y 
)

Definition at line 184 of file libmouse.c.

186 {
187  buffer.pos.x = x;
188  buffer.pos.y = y;
189 
190  if (SifCallRpc(&mouseif, PS2MOUSE_SETPOSITION, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
191  return -1;
192 
193  return 1;
194 }
s32 x
Definition: libmouse.c:34
s32 y
Definition: libmouse.c:34
#define PS2MOUSE_SETPOSITION
Definition: ps2mouse.h:52

References buffer, mouseif, NULL, PS2MOUSE_SETPOSITION, SifCallRpc(), x, and y.

◆ PS2MouseSetReadMode()

int PS2MouseSetReadMode ( u32  readMode)

Sets the read mode

Definition at line 84 of file libmouse.c.

86 {
87  buffer.mode = readMode;
88  if (SifCallRpc(&mouseif, PS2MOUSE_SETREADMODE, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
89  return -1;
90 
91  return 1;
92 }
#define PS2MOUSE_SETREADMODE
Definition: ps2mouse.h:44

References buffer, mouseif, NULL, PS2MOUSE_SETREADMODE, and SifCallRpc().

◆ PS2MouseSetThres()

int PS2MouseSetThres ( u32  thres)

Definition at line 105 of file libmouse.c.

107 {
108  buffer.thres = thres;
109  if (SifCallRpc(&mouseif, PS2MOUSE_SETTHRES, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
110  return -1;
111 
112  return 1;
113 }
u32 thres
Definition: libmouse.c:28
#define PS2MOUSE_SETTHRES
Definition: ps2mouse.h:46

References buffer, mouseif, NULL, PS2MOUSE_SETTHRES, SifCallRpc(), and thres.