/** \file\r
* \brief USB Human Interface Device (HID) Class report descriptor parser.\r
*\r
- * This file allows for the easy parsing of the complex HID report descriptor, which describes the data that\r
- * the device transmits to the host. It also provides an easy API for extracting and processing the data\r
+ * This file allows for the easy parsing of complex HID report descriptors, which describes the data that\r
+ * a HID device transmits to the host. It also provides an easy API for extracting and processing the data\r
* elements inside a HID report sent from an attached HID device.\r
*/\r
\r
};\r
\r
/* Type Defines: */ \r
- /** Type define for an attribute with both minimum and maximum values (e.g. Logical Min/Max). */\r
+ /** \brief HID Parser Report Item Min/Max Structure.\r
+ *\r
+ * Type define for an attribute with both minimum and maximum values (e.g. Logical Min/Max).\r
+ */\r
typedef struct\r
{\r
uint32_t Minimum; /**< Minimum value for the attribute. */\r
uint32_t Maximum; /**< Maximum value for the attribute. */\r
} HID_MinMax_t;\r
\r
- /** Type define for the Unit attributes of a report item. */\r
+ /** \brief HID Parser Report Item Unit Structure.\r
+ *\r
+ * Type define for the Unit attributes of a report item.\r
+ */\r
typedef struct\r
{\r
uint32_t Type; /**< Unit type (refer to HID specifications for details). */\r
uint8_t Exponent; /**< Unit exponent (refer to HID specifications for details). */\r
} HID_Unit_t;\r
\r
- /** Type define for the Usage attributes of a report item. */\r
+ /** \brief HID Parser Report Item Usage Structure.\r
+ *\r
+ * Type define for the Usage attributes of a report item.\r
+ */\r
typedef struct\r
{\r
uint16_t Page; /**< Usage page of the report item. */\r
uint16_t Usage; /**< Usage of the report item. */\r
} HID_Usage_t;\r
\r
- /** Type define for a COLLECTION object. Contains the collection attributes and a reference to the\r
+ /** \brief HID Parser Report Item Collection Path Structure.\r
+ *\r
+ * Type define for a COLLECTION object. Contains the collection attributes and a reference to the\r
* parent collection if any.\r
*/\r
typedef struct CollectionPath\r
struct CollectionPath* Parent; /**< Reference to parent collection, or NULL if root collection. */\r
} HID_CollectionPath_t;\r
\r
- /** Type define for all the data attributes of a report item, except flags. */\r
+ /** \brief HID Parser Report Item Attributes Structure.\r
+ *\r
+ * Type define for all the data attributes of a report item, except flags.\r
+ */\r
typedef struct\r
{\r
uint8_t BitSize; /**< Size in bits of the report item's data. */\r
HID_MinMax_t Physical; /**< Physical minimum and maximum of the report item. */\r
} HID_ReportItem_Attributes_t;\r
\r
- /** Type define for a report item (IN, OUT or FEATURE) attributes and other details. */\r
+ /** \brief HID Parser Report Item Details Structure.\r
+ *\r
+ * Type define for a report item (IN, OUT or FEATURE) layout attributes and other details.\r
+ */\r
typedef struct\r
{\r
uint16_t BitOffset; /**< Bit offset in the IN, OUT or FEATURE report of the item. */\r
uint32_t PreviousValue; /**< Previous value of the report item. */ \r
} HID_ReportItem_t;\r
\r
- /** Type define for a report item size information structure */\r
+ /** \brief HID Parser Report Size Structure.\r
+ *\r
+ * Type define for a report item size information structure, to retain the size of a device's reports by ID.\r
+ */\r
typedef struct\r
{\r
uint8_t ReportID; /** Report ID of the report within the HID interface */\r
*/\r
} HID_ReportSizeInfo_t;\r
\r
- /** Type define for a complete processed HID report, including all report item data and collections. */\r
+ /** \brief HID Parser State Structure.\r
+ *\r
+ * Type define for a complete processed HID report, including all report item data and collections.\r
+ */\r
typedef struct\r
{\r
uint8_t TotalReportItems; /**< Total number of report items stored in the\r