Mouse

ADB Apple classic mouse driver. More...


Files

file  adb_dev.c
file  adb_dev.h
file  adb_mouse.c
file  adb_mouse.h
file  char_mouse.c
file  char_mouse.h
file  chardev.c
file  mouse.h
file  mouse_port.h
file  mouse_proto.h
file  ps2.c
 PS/2 mouse protocol driver.
file  s3c24xx_ts.c
 Samsung Samsung S3C24xx on-chip ADC and touch-screen interface driver.

Data Structures

struct  ps2packet_t

Defines

#define BUFSIZE   3
#define NAME   "s3c24ser"
#define NAME   "char_mouse"
#define NAME   "mouse"
#define NAME   "adb_ms"
#define NAMESPACE   "hid_in"
#define NAMESPACE   "hid_in"
#define NAMESPACE   "hid_in"
#define PS2_MOUSE_ACK   0xfa
#define PS2_MOUSE_OUT_INIT   0xf4

Enumerations

enum  mouse_notif_t

Functions

static void adb_dev_events (ipc_callid_t iid, ipc_call_t *icall)
int adb_dev_init (void)
static int bit9toint (int sign, unsigned char data)
 Convert 9-bit 2-complement signed number to integer.
static void chardev_events (ipc_callid_t iid, ipc_call_t *icall)
static void client_connection (ipc_callid_t iid, ipc_call_t *icall)
static int lin_map_range (int v, int i0, int i1, int o0, int o1)
 Map integer from one range to another range in a linear fashion.
int main (int argc, char *argv[])
 Main entry point.
int main (int argc, char **argv)
static void mouse_ev_btn (int button, int press)
static void mouse_ev_move (int dx, int dy)
void mouse_handle_byte (int byte)
void mouse_handle_data (uint16_t data)
int mouse_port_init (void)
void mouse_port_reclaim (void)
void mouse_port_write (uint8_t data)
void mouse_port_yield (void)
int mouse_proto_init (void)
void mouse_proto_parse_byte (int data)
 Process mouse data.
static void s3c24xx_ts_connection (ipc_callid_t iid, ipc_call_t *icall)
 Handle mouse client connection.
static void s3c24xx_ts_convert_samples (int smp0, int smp1, int *x, int *y)
 Convert sampled data to screen coordinates.
static void s3c24xx_ts_eoc (s3c24xx_ts_t *ts)
 Handle end-of-conversion interrupt.
static int s3c24xx_ts_init (s3c24xx_ts_t *ts)
 Initialize S3C24xx touchscreen interface.
static void s3c24xx_ts_irq_handler (ipc_callid_t iid, ipc_call_t *call)
 Handle touchscreen interrupt.
static void s3c24xx_ts_pen_down (s3c24xx_ts_t *ts)
 Handle pen-down interrupt.
static void s3c24xx_ts_pen_up (s3c24xx_ts_t *ts)
 Handle pen-up interrupt.
static void s3c24xx_ts_wait_for_int_mode (s3c24xx_ts_t *ts, ts_updn_t updn)
 Switch interface to wait for interrupt mode.

Variables

static bool b1_pressed
static bool b2_pressed
static ps2packet_t buf
static int bufpos = 0
int client_phone = -1
static int client_phone = -1
static int dev_phone
static int dev_phone
static int leftbtn = 0
static int middlebtn = 0
static int rightbtn = 0
static s3c24xx_ts_tts
 S3C24xx touchscreen instance structure.
static irq_cmd_t ts_irq_cmds []
static irq_code_t ts_irq_code

Detailed Description

ADB Apple classic mouse driver.

This driver handles a mouse connected to Apple Desktop Bus speaking the Apple classic protocol. It connects to an ADB driver.

This is a common driver for mice attached to simple character devices (PS/2 mice, serial mice).


Function Documentation

static int lin_map_range ( int  v,
int  i0,
int  i1,
int  o0,
int  o1 
) [static]

Map integer from one range to another range in a linear fashion.

i0 < i1 is required. i0 is mapped to o0, i1 to o1. If o1 < o0, then the mapping will be descending. If v is outside of [i0, i1], it is clamped.

Parameters:
v Value to map.
i0 Lower bound of input range.
i1 Upper bound of input range.
o0 First bound of output range.
o1 Second bound of output range.
Returns:
Mapped value ov, o0 <= ov <= o1.

Definition at line 360 of file s3c24xx_ts.c.

int main ( int  argc,
char *  argv[] 
)

Main entry point.

Parameters:
[in] argc Nmber of arguments in argv vector (ignored).
[in] argv Cmdline argument vector (ignored).
Returns:
Error code.
Driver debug level is set here.

Definition at line 82 of file s3c24xx_ts.c.

static void s3c24xx_ts_eoc ( s3c24xx_ts_t ts  )  [static]

Handle end-of-conversion interrupt.

Parameters:
ts Touchscreen instance

Definition at line 291 of file s3c24xx_ts.c.

static void s3c24xx_ts_pen_down ( s3c24xx_ts_t ts  )  [static]

Handle pen-down interrupt.

Parameters:
ts Touchscreen instance

Definition at line 253 of file s3c24xx_ts.c.

static void s3c24xx_ts_pen_up ( s3c24xx_ts_t ts  )  [static]

Handle pen-up interrupt.

Parameters:
ts Touchscreen instance

Definition at line 272 of file s3c24xx_ts.c.

static void s3c24xx_ts_wait_for_int_mode ( s3c24xx_ts_t ts,
ts_updn_t  updn 
) [static]

Switch interface to wait for interrupt mode.

In this mode we receive an interrupt when pen goes up/down, depending on updn.

Parameters:
ts Touchscreen instance
updn updn_up to wait for pen up, updn_down to wait for pen down.

Definition at line 157 of file s3c24xx_ts.c.


Generated on Thu Jun 2 07:45:57 2011 for HelenOS/USB by  doxygen 1.4.7