#include <string.h>
#include <stdbool.h>
#include "HIDReportData.h"
#include "../Common/HID.h"
#include "../../../../Common/Common.h"
Data Structures | |
struct | HID_MinMax_t |
struct | HID_Unit_t |
struct | HID_Usage_t |
struct | HID_CollectionPath_t |
struct | HID_ReportItem_Attributes_t |
struct | HID_ReportItem_t |
struct | HID_ReportSizeInfo_t |
struct | HID_ReportInfo_t |
Defines | |
#define | HID_STATETABLE_STACK_DEPTH 2 |
#define | HID_USAGE_STACK_DEPTH 8 |
#define | HID_MAX_COLLECTIONS 10 |
#define | HID_MAX_REPORTITEMS 20 |
#define | HID_MAX_REPORT_IDS 10 |
#define | HID_ALIGN_DATA(reportitem, type) ((type)(reportitem->Value << (sizeof(type) - reportitem->Attributes.BitSize))) |
Enumerations | |
enum | HID_Parse_ErrorCodes_t { HID_PARSE_Successful = 0, HID_PARSE_HIDStackOverflow = 1, HID_PARSE_HIDStackUnderflow = 2, HID_PARSE_InsufficientReportItems = 3, HID_PARSE_UnexpectedEndCollection = 4, HID_PARSE_InsufficientCollectionPaths = 5, HID_PARSE_UsageListOverflow = 6, HID_PARSE_InsufficientReportIDItems = 7, HID_PARSE_NoUnfilteredReportItems = 8 } |
Functions | |
uint8_t | USB_ProcessHIDReport (const uint8_t *ReportData, uint16_t ReportSize, HID_ReportInfo_t *const ParserData) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(3) |
bool | USB_GetHIDReportItemInfo (const uint8_t *ReportData, HID_ReportItem_t *const ReportItem) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2) |
void | USB_SetHIDReportItemInfo (uint8_t *ReportData, HID_ReportItem_t *const ReportItem) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2) |
uint16_t | USB_GetHIDReportSize (HID_ReportInfo_t *const ParserData, const uint8_t ReportID, const uint8_t ReportType) ATTR_CONST ATTR_NON_NULL_PTR_ARG(1) |
bool | CALLBACK_HIDParser_FilterHIDReportItem (HID_ReportItem_t *CurrentItem) |
USB Human Interface Device (HID) Class report descriptor processing routines. This file allows for the easy parsing of the complex HID report descriptor, which describes the data that the device transmits to the host.