PS2SDK
PS2 Homebrew Libraries
ps2mouse.c File Reference
#include "types.h"
#include "iomanX.h"
#include "loadcore.h"
#include "stdio.h"
#include "sifcmd.h"
#include "sifrpc.h"
#include "sysclib.h"
#include "sysmem.h"
#include "usbd.h"
#include "usbd_macro.h"
#include "thbase.h"
#include "thevent.h"
#include "thsemap.h"
#include "ps2mouse.h"
+ Include dependency graph for ps2mouse.c:

Go to the source code of this file.

Data Structures

struct  _mouse_data_recv
 
struct  _mouse_dev
 
struct  _string_descriptor
 

Macros

#define MODNAME   "PS2 USB mouse driver"
 
#define PS2MOUSE_VERSION   0x100
 
#define USB_SUBCLASS_BOOT   1
 
#define USB_HIDPROTO_MOUSE   2
 
#define PS2MOUSE_MAXDEV   2
 
#define PS2MOUSE_MAXBUTTONS   3
 
#define PS2MOUSE_DEFDBLCLICK   500
 
#define PS2MOUSE_DEFACCEL   (1 << 16)
 
#define PS2MOUSE_DEFTHRES   65536;
 
#define ABS(x)   (x < 0 ? -x : x)
 

Typedefs

typedef struct _mouse_data_recv mouse_data_recv
 
typedef struct _mouse_dev mouse_dev
 
typedef struct _string_descriptor string_descriptor
 

Functions

 IRX_ID (MODNAME, 1, 1)
 
static SifRpcDataQueue_t ps2mouse_queue __attribute__ ((aligned(16)))
 
static int _rpc_buffer[512] __attribute__ ((__aligned__(4)))
 
void rpcMainThread (void *param)
 
void * rpcCommandHandler (u32 command, void *buffer, int size)
 
int ps2mouse_init ()
 
void ps2mouse_config_set (int resultCode, int bytes, void *arg)
 
void ps2mouse_data_recv (int resultCode, int bytes, void *arg)
 
int ps2mouse_probe (int devId)
 
int ps2mouse_connect (int devId)
 
int ps2mouse_disconnect (int devId)
 
void usb_getstring (int endp, int index, char *desc)
 
int _start (int argc, char *argv[])
 
void ps2mouse_getstring_set (int resultCode, int bytes, void *arg)
 
void do_ps2mouse_read (u8 *data, int size)
 
void do_ps2mouse_setreadmode (const u32 *data, int size)
 
void do_ps2mouse_getreadmode (u32 *data, int size)
 
void do_ps2mouse_setthres (const u32 *data, int size)
 
void do_ps2mouse_getthres (u32 *data, int size)
 
void do_ps2mouse_setaccel (const u32 *data, int size)
 
void do_ps2mouse_getaccel (u32 *data, int size)
 
void do_ps2mouse_setboundary (const s32 *data, int size)
 
void do_ps2mouse_getboundary (s32 *data, int size)
 
void do_ps2mouse_setposition (const s32 *data, int size)
 
void do_ps2mouse_reset ()
 
void do_ps2mouse_enum (u32 *data, int size)
 
void do_ps2mouse_setdblclicktime (const u32 *data, int size)
 
void do_ps2mouse_getdblclicktime (u32 *data, int size)
 
void do_ps2mouse_getversion (u32 *data, int size)
 

Variables

int mouse_readmode
 
int mousex_min
 
int mousex_max
 
int mousey_min
 
int mousey_max
 
int mouse_thres
 
int mouse_accel
 
int mouse_dblclicktime
 
int mouse_sema
 
mouse_data mouse
 
mouse_devdevices [PS2MOUSE_MAXDEV]
 
int dev_count
 
sceUsbdLddOps mouse_driver = { NULL, NULL, "PS2Mouse", ps2mouse_probe, ps2mouse_connect, ps2mouse_disconnect, 0, 0, 0, 0, 0, NULL }
 

Detailed Description

USB Mouse Driver for PS2

Definition in file ps2mouse.c.


Data Structure Documentation

◆ _mouse_data_recv

struct _mouse_data_recv

Definition at line 66 of file ps2mouse.c.

Data Fields
unsigned char buttons
char x
char y
char wheel

◆ _mouse_dev

struct _mouse_dev

Definition at line 73 of file ps2mouse.c.

+ Collaboration diagram for _mouse_dev:
Data Fields
int configEndp
int dataEndp
int packetSize
int devId
mouse_data_recv data

Holds the data for the transfers

u32 timer[PS2MOUSE_MAXBUTTONS]

Array to hold timers for double click

◆ _string_descriptor

struct _string_descriptor

Definition at line 323 of file ps2kbd.c.

Data Fields
u8 buf[200]
char * desc

Function Documentation

◆ __attribute__()

static SifRpcDataQueue_t ps2mouse_queue __attribute__ ( (aligned(16))  )
static

SOURCE CHAIN TAG for DMA CHAIN MODE

Definition at line 19 of file netcnfif.c.

Variable Documentation

◆ mouse

mouse_data mouse

Holds the current mouse information

Definition at line 98 of file ps2mouse.c.

◆ devices

mouse_dev* devices[PS2MOUSE_MAXDEV]

Holds a list of current devices

Definition at line 100 of file ps2mouse.c.