1 /*
2 ********************************************************************************
3 *                                USB Hid Driver
4 *
5 *                (c) Copyright 2006-2010, All winners Co,Ld.
6 *                        All Right Reserved
7 *
8 * FileName      :  UsbMouse_DriftControl.h
9 *
10 * Author        :  Javen
11 *
12 * Date          :  2010.06.02
13 *
14 * Description   :  USB Mouse
15 *
16 * Others        :  NULL
17 *
18 * History:
19 *       <time>      <version >      <author>        <desc>
20 *      2010.07.16      1.0           Javen          build this file
21 *
22 ********************************************************************************
23 */
24 #ifndef  __USBMOUSE_DRIFTCONTROL_H__
25 #define  __USBMOUSE_DRIFTCONTROL_H__
26 
27 //--------------------------------------------------------
28 //
29 //--------------------------------------------------------
30 typedef struct _UsbMouseEventUnit{
31     unsigned int vaild;                 /* 是否有效 */
32     USBHMouseEvent_t MouseEvent;    /* 鼠标事件 */
33 }UsbMouseEventUnit_t;
34 
35 typedef struct _UsbMouseDriftControl{
36     usbMouse_t *usbMouse;
37 
38     osal_timer_t TimerHdle; /* timer 句柄             */
39     hal_sem_t ThreadSemi;       /* 线程信号量            */
40     hal_sem_t notify_complete;  /* 线程同步信号量      */
41     void *ThreadId;                         /* 线程ID                 */
42 
43     unsigned int ButtonDown;                        /* 按键按下             */
44 
45     UsbMouseEventUnit_t PreMouseEvent;      /* 上一次的鼠标事件     */
46     UsbMouseEventUnit_t DubiousMouseEvent;  /* 可以的鼠标事件      */
47     UsbMouseEventUnit_t CurrentMouseEvent;  /* 当前的鼠标事件      */
48     unsigned int DubiousCoordinate;             /* 可疑坐标, bit1:X, bit2:Y, bit3: X & Y */
49     unsigned int WaitEvent;                     /* 等待下一次的事件     */
50 }UsbMouseDriftControl_t;
51 
52 
53 //--------------------------------------------------------
54 //
55 //--------------------------------------------------------
56 void UsbMouse_AddToDriftArray(usbMouse_t *usbMouse, USBHMouseEvent_t *Event);
57 int UsbMouse_DriftControl_Init(usbMouse_t *usbMouse);
58 int UsbMouse_DriftControl_Exit(usbMouse_t *usbMouse);
59 
60 #endif   //__USBMOUSE_DRIFTCONTROL_H__
61 
62