Remove type definitions of the keyboard and mouse boot protocol report layouts from...
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Host / HIDParser.h
index d9adae3..74916db 100644 (file)
                        typedef struct\r
                        {\r
                                uint8_t                      ReportID; /** Report ID of the report within the HID interface */\r
-                               uint8_t                      BitsIn; /** Total number of IN data bits in the current report ID */\r
-                               uint8_t                      BitsOut; /** Total number of OUT data bits in the current report ID */\r
-                               uint8_t                      BitsFeature; /** Total number of FEATURE data bits in the current report ID */\r
+                               uint8_t                      ReportSizeBits[3]; /** Total number of bits in each report type for the given Report ID,\r
+                                                                                *  indexed by the \ref HID_ReportItemTypes_t enum\r
+                                                                                                                                */\r
                        } HID_ReportSizeInfo_t;\r
 \r
                        /** Type define for a complete processed HID report, including all report item data and collections. */\r
                        void USB_SetHIDReportItemInfo(uint8_t* ReportData, const HID_ReportItem_t* ReportItem)\r
                                                      ATTR_NON_NULL_PTR_ARG(1, 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, uint8_t ReportID,\r
+                                                     uint8_t ReportType) 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