1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
|
//*****************************************************************************
//
// usbhhid.h - This hold the host driver for hid class.
//
// Copyright (c) 2008-2012 Texas Instruments Incorporated. All rights reserved.
// Software License Agreement
//
// Texas Instruments (TI) is supplying this software for use solely and
// exclusively on TI's microcontroller products. The software is owned by
// TI and/or its suppliers, and is protected under applicable copyright
// laws. You may not combine this software with "viral" open-source
// software in order to form a larger program.
//
// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
// DAMAGES, FOR ANY REASON WHATSOEVER.
//
// This is part of revision 9453 of the Stellaris USB Library.
//
//*****************************************************************************
#ifndef __USBHHID_H__
#define __USBHHID_H__
//*****************************************************************************
//
// If building with a C++ compiler, make all of the definitions in this header
// have a C binding.
//
//*****************************************************************************
#ifdef __cplusplus
extern "C"
{
#endif
//*****************************************************************************
//
//! \addtogroup usblib_host_class
//! @{
//
//*****************************************************************************
//*****************************************************************************
//
// These defines are the the events that will be passed in the ulEvent
// parameter of the callback from the driver.
//
//*****************************************************************************
#define USBH_EVENT_HID_SETRPT USBH_HID_EVENT_BASE + 0
#define USBH_EVENT_HID_REPORT USBH_HID_EVENT_BASE + 1
//
//! The HID keyboard detected a key being pressed.
//
#define USBH_EVENT_HID_KB_PRESS USBH_HID_EVENT_BASE + 16
//
//! The HID keyboard detected a key being released.
//
#define USBH_EVENT_HID_KB_REL USBH_HID_EVENT_BASE + 17
//
//! The HID keyboard detected one of the keyboard modifiers being pressed.
//
#define USBH_EVENT_HID_KB_MOD USBH_HID_EVENT_BASE + 18
//
//! A button was pressed on a HID mouse.
//
#define USBH_EVENT_HID_MS_PRESS USBH_HID_EVENT_BASE + 32
//
//! A button was released on a HID mouse.
//
#define USBH_EVENT_HID_MS_REL USBH_HID_EVENT_BASE + 33
//
//! The HID mouse detected movement in the X direction.
//
#define USBH_EVENT_HID_MS_X USBH_HID_EVENT_BASE + 34
//
//! The HID mouse detected movement in the Y direction.
//
#define USBH_EVENT_HID_MS_Y USBH_HID_EVENT_BASE + 35
//*****************************************************************************
//
//! The following values are used to register callbacks to the USB HOST HID
//! device class layer.
//
//*****************************************************************************
typedef enum
{
//
//! No device should be used. This value should not be used by
//! applications.
//
USBH_HID_DEV_NONE = 0,
//
//! This is a keyboard device.
//
USBH_HID_DEV_KEYBOARD,
//
//! This is a mouse device.
//
USBH_HID_DEV_MOUSE,
//
//! This is a vendor specific device.
//
USBH_HID_DEV_VENDOR
}
tHIDSubClassProtocol;
//*****************************************************************************
//
// Close the Doxygen group.
//! @}
//
//*****************************************************************************
//*****************************************************************************
//
// Prototypes.
//
//*****************************************************************************
extern unsigned long USBHHIDOpen(tHIDSubClassProtocol eDeviceType,
tUSBCallback pfnCallback,
unsigned long ulCBData);
extern void USBHHIDClose(unsigned long ulInstance);
extern unsigned long USBHHIDGetReportDescriptor(unsigned long ulInstance,
unsigned char *pucBuffer,
unsigned long ulSize);
extern unsigned long USBHHIDSetIdle(unsigned long ulInstance,
unsigned char ucDuration,
unsigned char ucReportID);
extern unsigned long USBHHIDSetProtocol(unsigned long ulInstance,
unsigned long ulBootProtocol);
extern unsigned long USBHHIDSetReport(unsigned long ulInstance,
unsigned long ulInterface,
unsigned char *pucData,
unsigned long ulSize);
extern unsigned long USBHHIDGetReport(unsigned long ulInstance,
unsigned long ulInterface,
unsigned char *pucData,
unsigned long ulSize);
extern const tUSBHostClassDriver g_USBHIDClassDriver;
//*****************************************************************************
//
// Mark the end of the C bindings section for C++ compilers.
//
//*****************************************************************************
#ifdef __cplusplus
}
#endif
#endif // __USBHHID_H__
|