mirror of
https://github.com/apache/nuttx.git
synced 2026-05-20 04:16:35 +08:00
drivers/input:support mouse driver
Implement mouse driver lower upper Signed-off-by: liuhongchao <liuhongchao@xiaomi.com>
This commit is contained in:
@@ -47,31 +47,91 @@
|
||||
#define MOUSE_BUTTON_1 (1 << 0) /* True: Left mouse button pressed */
|
||||
#define MOUSE_BUTTON_2 (1 << 1) /* True: Right mouse button pressed */
|
||||
#define MOUSE_BUTTON_3 (1 << 2) /* True: Middle mouse button pressed */
|
||||
#define MOUSE_BUTTON_4 (1 << 3) /* True: Left mouse button released */
|
||||
#define MOUSE_BUTTON_5 (1 << 4) /* True: Right mouse button released */
|
||||
#define MOUSE_BUTTON_6 (1 << 5) /* True: Middle mouse button released */
|
||||
|
||||
/****************************************************************************
|
||||
* Public Types
|
||||
****************************************************************************/
|
||||
|
||||
/* This structure contains information about the current mouse button states
|
||||
* and mouse position. Positional units are device specific and determined
|
||||
* by mouse configuration settings.
|
||||
/* This structure contains information about the current mouse button
|
||||
* states and mouse position. Positional units are device specific
|
||||
* and determined by mouseconfiguration settings.
|
||||
*/
|
||||
|
||||
struct mouse_report_s
|
||||
{
|
||||
uint8_t buttons; /* See TOUCH_* definitions above */
|
||||
/* Possibly padded with 1 byte here */
|
||||
int16_t x; /* X coordinate of the mouse position */
|
||||
int16_t y; /* Y coordinate of the mouse position */
|
||||
uint8_t buttons; /* See MOUSE_* definitions above */
|
||||
/* Possibly padded with 1 byte here */
|
||||
int16_t x; /* X coordinate of the mouse position */
|
||||
int16_t y; /* Y coordinate of the mouse position */
|
||||
#ifdef CONFIG_INPUT_MOUSE_WHEEL
|
||||
int16_t wheel; /* Mouse wheel position */
|
||||
int16_t wheel; /* Mouse wheel position */
|
||||
#endif
|
||||
};
|
||||
|
||||
/* This structure is for mouse lower half driver */
|
||||
|
||||
struct mouse_lowerhalf_s
|
||||
{
|
||||
FAR void *priv; /* Save the upper half pointer */
|
||||
};
|
||||
|
||||
/****************************************************************************
|
||||
* Public Data
|
||||
* Public Function Prototypes
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: mouse_event
|
||||
*
|
||||
* Description:
|
||||
* The lower half driver pushes mouse events through this interface,
|
||||
* provided by mouse upper half.
|
||||
*
|
||||
* Arguments:
|
||||
* priv - Upper half driver handle.
|
||||
* sample - pointer to data of mouse point event.
|
||||
****************************************************************************/
|
||||
|
||||
void mouse_event(FAR void *priv, FAR const struct mouse_report_s *sample);
|
||||
|
||||
/****************************************************************************
|
||||
* Name: mouse_register
|
||||
*
|
||||
* Description:
|
||||
* This function registers a mouse device, the upper half binds
|
||||
* with hardware device through the lower half instance.
|
||||
*
|
||||
* Arguments:
|
||||
* lower - A pointer of lower half instance.
|
||||
* path - The path of mouse device. such as "/dev/mouse0"
|
||||
* nums - Number of the mouse points structure.
|
||||
*
|
||||
* Return:
|
||||
* OK if the driver was successfully registered; A negated errno value is
|
||||
* returned on any failure.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int mouse_register(FAR struct mouse_lowerhalf_s *lower,
|
||||
FAR const char *path, uint8_t nums);
|
||||
|
||||
/****************************************************************************
|
||||
* Name: mouse_unregister
|
||||
*
|
||||
* Description:
|
||||
* This function is used to mouse driver to unregister and
|
||||
* release the occupied resources.
|
||||
*
|
||||
* Arguments:
|
||||
* lower - A pointer to an insatnce of mouse lower half driver.
|
||||
* path - The path of mouse device. such as "/dev/mouse0"
|
||||
****************************************************************************/
|
||||
|
||||
void mouse_unregister(FAR struct mouse_lowerhalf_s *lower,
|
||||
FAR const char *path);
|
||||
|
||||
#ifdef __cplusplus
|
||||
#define EXTERN extern "C"
|
||||
extern "C"
|
||||
|
||||
Reference in New Issue
Block a user