45 memset(&mouseif, 0,
sizeof(mouseif));
49 printf(
"PS2Mouse Library already initialised\n");
54 if (sceSifBindRpc(&mouseif, PS2MOUSE_BIND_RPC_ID, 0) < 0) {
58 }
while(!mouseif.server);
66 u8* uncached = UNCACHED_SEG(buffer.buffer);
73 if (sceSifCallRpc(&mouseif, PS2MOUSE_READ, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
86 buffer.mode = readMode;
87 if (sceSifCallRpc(&mouseif, PS2MOUSE_SETREADMODE, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
96 u32 *uncached = (u32 *) UNCACHED_SEG(&buffer.mode);
98 if (sceSifCallRpc(&mouseif, PS2MOUSE_GETREADMODE, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
104 int PS2MouseSetThres(u32 thres)
107 buffer.thres = thres;
108 if (sceSifCallRpc(&mouseif, PS2MOUSE_SETTHRES, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
114 u32 PS2MouseGetThres()
117 u32* uncached = (u32 *) UNCACHED_SEG(&buffer.thres);
118 if (sceSifCallRpc(&mouseif, PS2MOUSE_GETTHRES, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
124 int PS2MouseSetAccel(
float accel)
129 if(accel < 0)
return -1;
131 accel_fixed = (u32) (accel * 65536.0);
132 buffer.accel = accel_fixed;
133 if (sceSifCallRpc(&mouseif, PS2MOUSE_SETACCEL, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
139 float PS2MouseGetAccel()
142 u32* uncached = (u32 *) UNCACHED_SEG(&buffer.accel);
145 if (sceSifCallRpc(&mouseif, PS2MOUSE_GETACCEL, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
148 accel_fixed = uncached[0];
150 return ((
float) accel_fixed) / 65536.0 ;
153 int PS2MouseSetBoundary(
int minx,
int maxx,
int miny,
int maxy)
156 buffer.bounds.minx = minx;
157 buffer.bounds.maxx = maxx;
158 buffer.bounds.miny = miny;
159 buffer.bounds.maxy = maxy;
161 if (sceSifCallRpc(&mouseif, PS2MOUSE_SETBOUNDARY, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
167 int PS2MouseGetBoundary(
int *minx,
int *maxx,
int *miny,
int *maxy)
170 struct mbounds* uncached = (
struct mbounds *) UNCACHED_SEG(&buffer.bounds);
172 if (sceSifCallRpc(&mouseif, PS2MOUSE_GETBOUNDARY, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
175 *minx = uncached->minx;
176 *maxx = uncached->maxx;
177 *miny = uncached->miny;
178 *maxy = uncached->maxy;
183 int PS2MouseSetPosition(
int x,
int y)
189 if (sceSifCallRpc(&mouseif, PS2MOUSE_SETPOSITION, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
198 if (sceSifCallRpc(&mouseif, PS2MOUSE_RESET, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
207 u32* uncached = (u32 *) UNCACHED_SEG(&buffer.data);
209 if (sceSifCallRpc(&mouseif, PS2MOUSE_ENUM, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
215 u32 PS2MouseGetVersion()
218 u32* uncached = (u32 *) UNCACHED_SEG(&buffer.data);
220 if (sceSifCallRpc(&mouseif, PS2MOUSE_GETVERSION, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
226 int PS2MouseSetDblClickTime(u32 msec)
231 if (sceSifCallRpc(&mouseif, PS2MOUSE_SETDBLCLICKTIME, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)
237 u32 PS2MouseGetDblClickTIme()
240 u32* uncached = (u32 *) UNCACHED_SEG(&buffer.time);
242 if (sceSifCallRpc(&mouseif, PS2MOUSE_GETDBLCLICKTIME, 0, &buffer, 128, &buffer, 128, NULL, NULL) < 0)