1 | /* |
---|
2 | * This file is the header file for the Mouse Parser Engine which |
---|
3 | * is derived from a UNIX Serial Port Mouse Driver with the following |
---|
4 | * notice: |
---|
5 | * |
---|
6 | * ================================================================== |
---|
7 | * Copyright (c) 1999 Greg Haerr <greg@censoft.com> |
---|
8 | * Portions Copyright (c) 1991 David I. Bell |
---|
9 | * Permission is granted to use, distribute, or modify this source, |
---|
10 | * provided that this copyright notice remains intact. |
---|
11 | * |
---|
12 | * UNIX Serial Port Mouse Driver |
---|
13 | * |
---|
14 | * This driver opens a serial port directly, and interprets serial data. |
---|
15 | * Microsoft, PC, Logitech and PS/2 mice are supported. The PS/2 mouse |
---|
16 | * is only supported if the OS runs the mouse byte codes through the |
---|
17 | * serial port. |
---|
18 | * |
---|
19 | * Mouse Types Supported: pc ms, logi, ps2 |
---|
20 | * ================================================================== |
---|
21 | * |
---|
22 | * It has been modified to support the concept of being just a parser |
---|
23 | * fed data from an arbitrary source. It is independent of either |
---|
24 | * a PS/2 driver or a serial port. |
---|
25 | * |
---|
26 | * It was moved to cpukit/libmisc/mouse by Joel Sherrill. |
---|
27 | * |
---|
28 | * $Id$ |
---|
29 | */ |
---|
30 | |
---|
31 | #ifndef __MOUSE_PARSER_h__ |
---|
32 | #define __MOUSE_PARSER_h__ |
---|
33 | |
---|
34 | #include <rtems/mw_uid.h> |
---|
35 | |
---|
36 | #ifdef __cplusplus |
---|
37 | extern "C" { |
---|
38 | #endif |
---|
39 | |
---|
40 | /** |
---|
41 | * This is the mask for the right button. |
---|
42 | * |
---|
43 | * @note Use the same definitions as the user interface. |
---|
44 | */ |
---|
45 | #define RBUTTON MV_BUTTON_RIGHT |
---|
46 | |
---|
47 | /** |
---|
48 | * This is the mask for the center button. |
---|
49 | * |
---|
50 | * @note Use the same definitions as the user interface. |
---|
51 | */ |
---|
52 | #define MBUTTON MV_BUTTON_CENTER |
---|
53 | |
---|
54 | /** |
---|
55 | * This is the mask for the left button. |
---|
56 | * |
---|
57 | * @note Use the same definitions as the user interface. |
---|
58 | */ |
---|
59 | #define LBUTTON MV_BUTTON_LEFT |
---|
60 | |
---|
61 | /** |
---|
62 | * This type is the device coordinates. |
---|
63 | */ |
---|
64 | typedef int COORD; |
---|
65 | |
---|
66 | /** |
---|
67 | * This type is the mouse button mask. |
---|
68 | */ |
---|
69 | typedef unsigned int BUTTON; |
---|
70 | |
---|
71 | /** |
---|
72 | * This type defines a pointer to the enqueue method. It is |
---|
73 | * available since some device drivers keep pointers to the method |
---|
74 | * to know when to enqueue or not. |
---|
75 | */ |
---|
76 | typedef void (*mouse_parser_enqueue_handler)(unsigned char *, size_t); |
---|
77 | |
---|
78 | /** |
---|
79 | * @brief Initialize the Mouse Parser Engine |
---|
80 | * |
---|
81 | * This method initializes the Mouse Parser Engine for the mouse |
---|
82 | * of @a type. The @a type should be one of the following strings: |
---|
83 | * pc ms, logi, ps2. |
---|
84 | * |
---|
85 | * @a param[in] type indicates the type of mouse. |
---|
86 | * |
---|
87 | * @return This method returns 0 on success and -1 on error. |
---|
88 | */ |
---|
89 | int mouse_parser_initialize(const char *type); |
---|
90 | |
---|
91 | /** |
---|
92 | * @brief Enqueue Input to the Mouse Parser Engine |
---|
93 | * |
---|
94 | * This method is used to pass mouse input to the Mouse Parser Engine. |
---|
95 | * |
---|
96 | * @a param[in] buffer is the data to enqueue |
---|
97 | * @a param[in] size is the amount of data to enqueue |
---|
98 | */ |
---|
99 | void mouse_parser_enqueue( |
---|
100 | unsigned char *buffer, |
---|
101 | size_t size |
---|
102 | ); |
---|
103 | |
---|
104 | #ifdef __cplusplus |
---|
105 | } |
---|
106 | #endif |
---|
107 | |
---|
108 | #endif |
---|