+ * When called, this copies the report item's Value element to it's PreviousValue element for easy\r
+ * checking to see if an item's value has changed before sending a report.\r
+ *\r
+ * If the device has multiple HID reports, the first byte in the report is set to the report ID of the given item.\r
+ *\r
+ * \param[out] ReportData Buffer holding the current OUT or FEATURE report data\r
+ * \param[in] ReportItem Pointer to the report item of interest in a \ref HID_ReportInfo_t ReportItem array\r
+ */\r
+ void USB_SetHIDReportItemInfo(uint8_t* ReportData, HID_ReportItem_t* const ReportItem)\r
+ ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2);\r
+ \r
+ /** Retrieves the size of a given HID report in bytes from it's Report ID.\r
+ *\r
+ * \param[in] ParserData Pointer to a \ref HID_ReportInfo_t instance containing the parser output\r
+ * \param[in] ReportID Report ID of the report whose size is to be retrieved\r
+ * \param[in] ReportType Type of the report whose size is to be determined, a valued from the\r
+ * \ref HID_ReportItemTypes_t enum\r
+ *\r
+ * \return Size of the report in bytes, or 0 if the report does not exist\r
+ */\r
+ uint16_t USB_GetHIDReportSize(HID_ReportInfo_t* const ParserData, const uint8_t ReportID,\r
+ const uint8_t ReportType) ATTR_CONST ATTR_NON_NULL_PTR_ARG(1);\r
+\r
+ /** Callback routine for the HID Report Parser. This callback <b>must</b> be implemented by the user code when\r
+ * the parser is used, to determine what report IN, OUT and FEATURE item's information is stored into the user\r
+ * HID_ReportInfo_t structure. This can be used to filter only those items the application will be using, so that\r
+ * no RAM is wasted storing the attributes for report items which will never be referenced by the application.\r
+ *\r
+ * \param[in] CurrentItem Pointer to the current report item for user checking\r