HIDParser.h File Reference

#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)

Detailed Description

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.


Generated by  doxygen 1.6.2