#define __USBH_HID_H
#include "usbh_core.h"
#include "usbh_hid_mouse.h"
#include "usbh_hid_keybd.h"
#define HID_MIN_POLL
#define HID_REPORT_SIZE
#define HID_MAX_USAGE
#define HID_MAX_NBR_REPORT_FMT
#define HID_QUEUE_SIZE
#define HID_ITEM_LONG
#define HID_ITEM_TYPE_MAIN
#define HID_ITEM_TYPE_GLOBAL
#define HID_ITEM_TYPE_LOCAL
#define HID_ITEM_TYPE_RESERVED
#define HID_MAIN_ITEM_TAG_INPUT
#define HID_MAIN_ITEM_TAG_OUTPUT
#define HID_MAIN_ITEM_TAG_COLLECTION
#define HID_MAIN_ITEM_TAG_FEATURE
#define HID_MAIN_ITEM_TAG_ENDCOLLECTION
#define HID_GLOBAL_ITEM_TAG_USAGE_PAGE
#define HID_GLOBAL_ITEM_TAG_LOG_MIN
#define HID_GLOBAL_ITEM_TAG_LOG_MAX
#define HID_GLOBAL_ITEM_TAG_PHY_MIN
#define HID_GLOBAL_ITEM_TAG_PHY_MAX
#define HID_GLOBAL_ITEM_TAG_UNIT_EXPONENT
#define HID_GLOBAL_ITEM_TAG_UNIT
#define HID_GLOBAL_ITEM_TAG_REPORT_SIZE
#define HID_GLOBAL_ITEM_TAG_REPORT_ID
#define HID_GLOBAL_ITEM_TAG_REPORT_COUNT
#define HID_GLOBAL_ITEM_TAG_PUSH
#define HID_GLOBAL_ITEM_TAG_POP
#define HID_LOCAL_ITEM_TAG_USAGE
#define HID_LOCAL_ITEM_TAG_USAGE_MIN
#define HID_LOCAL_ITEM_TAG_USAGE_MAX
#define HID_LOCAL_ITEM_TAG_DESIGNATOR_INDEX
#define HID_LOCAL_ITEM_TAG_DESIGNATOR_MIN
#define HID_LOCAL_ITEM_TAG_DESIGNATOR_MAX
#define HID_LOCAL_ITEM_TAG_STRING_INDEX
#define HID_LOCAL_ITEM_TAG_STRING_MIN
#define HID_LOCAL_ITEM_TAG_STRING_MAX
#define HID_LOCAL_ITEM_TAG_DELIMITER
USBH_HID_StateTypeDef
USBH_HID_INIT
USBH_HID_IDLE
USBH_HID_SEND_DATA
USBH_HID_BUSY
USBH_HID_GET_DATA
USBH_HID_SYNC
USBH_HID_POLL
USBH_HID_ERROR
HID_CtlStateTypeDef
USBH_HID_REQ_INIT
USBH_HID_REQ_IDLE
USBH_HID_REQ_GET_REPORT_DESC
USBH_HID_REQ_GET_HID_DESC
USBH_HID_REQ_SET_IDLE
USBH_HID_REQ_SET_PROTOCOL
USBH_HID_REQ_SET_REPORT
HID_TypeTypeDef
HID_MOUSE
HID_KEYBOARD
HID_UNKNOWN
_HID_ReportData
ReportID
ReportType
UsagePage
Usage
NbrUsage
UsageMin
UsageMax
LogMin
LogMax
PhyMin
PhyMax
UnitExp
Unit
ReportSize
ReportCnt
Flag
PhyUsage
AppUsage
LogUsage
_HID_ReportIDTypeDef
Size
ReportID
Type
_HID_CollectionTypeDef
Usage
Type
NextPtr
_HID_AppCollectionTypeDef
Usage
Type
NbrReportFmt
ReportData
_HIDDescriptor
bLength
bDescriptorType
bcdHID
bCountryCode
bNumDescriptors
bReportDescriptorType
wItemLength
FIFO_TypeDef
buf
head
tail
size
lock
_HID_Process
OutPipe
InPipe
state
OutEp
InEp
ctl_state
fifo
pData
length
ep_addr
poll
timer
DataReady
HID_Desc
Init
#define USB_HID_GET_REPORT
#define USB_HID_GET_IDLE
#define USB_HID_GET_PROTOCOL
#define USB_HID_SET_REPORT
#define USB_HID_SET_IDLE
#define USB_HID_SET_PROTOCOL
#define USB_HID_CLASS
#define HID_BOOT_CODE
#define HID_KEYBRD_BOOT_CODE
#define HID_MOUSE_BOOT_CODE
HID_Class;
#define USBH_HID_CLASS
USBH_HID_SetReport(USBH_HandleTypeDef *, uint8_t, uint8_t, uint8_t *, uint8_t);
USBH_HID_GetReport(USBH_HandleTypeDef *, uint8_t, uint8_t, uint8_t *, uint8_t);
USBH_HID_GetHIDReportDescriptor(USBH_HandleTypeDef *, uint16_t);
USBH_HID_GetHIDDescriptor(USBH_HandleTypeDef *, uint16_t);
USBH_HID_SetIdle(USBH_HandleTypeDef *, uint8_t, uint8_t);
USBH_HID_SetProtocol(USBH_HandleTypeDef *, uint8_t);
USBH_HID_EventCallback(USBH_HandleTypeDef *);
USBH_HID_GetDeviceType(USBH_HandleTypeDef *);
USBH_HID_GetPollInterval(USBH_HandleTypeDef *);
USBH_HID_FifoInit(FIFO_TypeDef *, uint8_t *, uint16_t);
USBH_HID_FifoRead(FIFO_TypeDef *, void *, uint16_t);
USBH_HID_FifoWrite(FIFO_TypeDef *, void *, uint16_t);