Merge branch 'tmaster' into future
[fw/stlink] / example / stm32f4 / STM32_USB_HOST_Library / Class / HID / src / usbh_hid_mouse.c
1 /**
2   ******************************************************************************
3   * @file    usbh_hid_mouse.c 
4   * @author  MCD Application Team
5   * @version V2.0.0
6   * @date    22-July-2011
7   * @brief   This file is the application layer for USB Host HID Mouse Handling.                  
8   ******************************************************************************
9   * @attention
10   *
11   * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
12   * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
13   * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
14   * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
15   * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
16   * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
17   *
18   * <h2><center>&copy; COPYRIGHT 2011 STMicroelectronics</center></h2>
19   ******************************************************************************
20   */ 
21
22 /* Includes ------------------------------------------------------------------*/
23 #include "usbh_hid_mouse.h"
24
25
26 /** @addtogroup USBH_LIB
27   * @{
28   */
29
30 /** @addtogroup USBH_CLASS
31   * @{
32   */
33
34 /** @addtogroup USBH_HID_CLASS
35   * @{
36   */
37   
38 /** @defgroup USBH_HID_MOUSE 
39   * @brief    This file includes HID Layer Handlers for USB Host HID class.
40   * @{
41   */ 
42
43 /** @defgroup USBH_HID_MOUSE_Private_TypesDefinitions
44   * @{
45   */ 
46 /**
47   * @}
48   */ 
49
50
51 /** @defgroup USBH_HID_MOUSE_Private_Defines
52   * @{
53   */ 
54 /**
55   * @}
56   */ 
57
58
59 /** @defgroup USBH_HID_MOUSE_Private_Macros
60   * @{
61   */ 
62 /**
63   * @}
64   */ 
65
66 /** @defgroup USBH_HID_MOUSE_Private_FunctionPrototypes
67   * @{
68   */ 
69 static void  MOUSE_Init (void);
70 static void  MOUSE_Decode(uint8_t *data);
71 /**
72   * @}
73   */ 
74
75
76 /** @defgroup USBH_HID_MOUSE_Private_Variables
77   * @{
78   */
79 #ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED
80  #if defined   (__CC_ARM) /*!< ARM Compiler */
81   __align(4) 
82  #elif defined ( __ICCARM__ ) /*!< IAR Compiler */
83   #pragma data_alignment=4
84  #elif defined (__GNUC__) /*!< GNU Compiler */
85  #pragma pack(4) 
86  #elif defined  (__TASKING__) /*!< TASKING Compiler */                           
87   __align(4) 
88  #endif /* __CC_ARM */
89 #endif
90  
91  
92 HID_MOUSE_Data_TypeDef HID_MOUSE_Data;
93 HID_cb_TypeDef HID_MOUSE_cb = 
94 {
95   MOUSE_Init,
96   MOUSE_Decode,
97 };
98 /**
99   * @}
100   */ 
101
102
103 /** @defgroup USBH_HID_MOUSE_Private_Functions
104   * @{
105   */ 
106
107 /**
108 * @brief  MOUSE_Init
109 *         Init Mouse State.
110 * @param  None
111 * @retval None
112 */
113 static void  MOUSE_Init ( void)
114 {
115  /* Call User Init*/
116  USR_MOUSE_Init();
117 }
118             
119 /**
120 * @brief  MOUSE_Decode
121 *         Decode Mouse data
122 * @param  data : Pointer to Mouse HID data buffer
123 * @retval None
124 */
125 static void  MOUSE_Decode(uint8_t *data)
126 {
127   HID_MOUSE_Data.button = data[0];
128
129   HID_MOUSE_Data.x      = data[1];
130   HID_MOUSE_Data.y      = data[2];
131   
132   USR_MOUSE_ProcessData(&HID_MOUSE_Data);
133
134 }
135 /**
136   * @}
137   */ 
138
139 /**
140   * @}
141   */ 
142
143 /**
144   * @}
145   */
146
147 /**
148   * @}
149   */
150
151
152 /**
153   * @}
154   */
155 /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/