X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/dcedde012341a7cfff88c85203e735e99332627e..d36c96d6a526f74e3853466bcecf49261c58b9bd:/LUFA/Drivers/USB/Class/Host/HIDParser.h diff --git a/LUFA/Drivers/USB/Class/Host/HIDParser.h b/LUFA/Drivers/USB/Class/Host/HIDParser.h index 017e2f6d0..f772fed20 100644 --- a/LUFA/Drivers/USB/Class/Host/HIDParser.h +++ b/LUFA/Drivers/USB/Class/Host/HIDParser.h @@ -41,7 +41,7 @@ * * \section Sec_Dependencies Module Source Dependencies * The following files must be built with any user project that uses this module: - * - LUFA/Drivers/USB/Class/Host/HIDParser.c + * - LUFA/Drivers/USB/Class/Host/HIDParser.c (Makefile source module name: LUFA_SRC_USB) * * \section Module Description * Functions, macros, variables, enums and types related to the parsing of HID class device report descriptors. @@ -133,12 +133,12 @@ * left-aligned to the given data type. This allows for signed data to be interpreted correctly, by shifting the data * leftwards until the data's sign bit is in the correct position. * - * \param[in] reportitem HID Report Item whose retrieved value is to be aligned - * \param[in] type Data type to align the HID report item's value to + * \param[in] ReportItem HID Report Item whose retrieved value is to be aligned. + * \param[in] Type Data type to align the HID report item's value to. * - * \return Left-aligned data of the given report item's pre-retrived value for the given datatype + * \return Left-aligned data of the given report item's pre-retrieved value for the given datatype. */ - #define HID_ALIGN_DATA(reportitem, type) ((type)(reportitem->Value << ((8 * sizeof(type)) - reportitem->Attributes.BitSize))) + #define HID_ALIGN_DATA(ReportItem, Type) ((Type)(ReportItem->Value << ((8 * sizeof(Type)) - ReportItem->Attributes.BitSize))) /* Public Interface - May be used in end-application: */ /* Enums: */ @@ -239,9 +239,9 @@ */ typedef struct { - uint8_t ReportID; /**< Report ID of the report within the HID interface */ + uint8_t ReportID; /**< Report ID of the report within the HID interface. */ uint16_t ReportSizeBits[3]; /**< Total number of bits in each report type for the given Report ID, - * indexed by the \ref HID_ReportItemTypes_t enum + * indexed by the \ref HID_ReportItemTypes_t enum. */ } HID_ReportSizeInfo_t; @@ -272,28 +272,31 @@ /** Function to process a given HID report returned from an attached device, and store it into a given * \ref HID_ReportInfo_t structure. * - * \param[in] ReportData Buffer containing the device's HID report table - * \param[in] ReportSize Size in bytes of the HID report table - * \param[out] ParserData Pointer to a \ref HID_ReportInfo_t instance for the parser output + * \param[in] ReportData Buffer containing the device's HID report table. + * \param[in] ReportSize Size in bytes of the HID report table. + * \param[out] ParserData Pointer to a \ref HID_ReportInfo_t instance for the parser output. * - * \return A value in the \ref HID_Parse_ErrorCodes_t enum + * \return A value in the \ref HID_Parse_ErrorCodes_t enum. */ - 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); + 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); /** Extracts the given report item's value out of the given HID report and places it into the Value * member of the report item's \ref HID_ReportItem_t structure. * - * When called, this copies the report item's Value element to it's PreviousValue element for easy - * checking to see if an item's value has changed before processing a report. + * When called on a report with an item that exists in that report, this copies the report item's Value + * to it's PreviousValue element for easy checking to see if an item's value has changed before processing + * a report. If the given item does not exist in the report, the function does not modify the report item's + * data. * - * \param[in] ReportData Buffer containing an IN or FEATURE report from an attached device - * \param[in,out] ReportItem Pointer to the report item of interest in a \ref HID_ReportInfo_t ReportItem array + * \param[in] ReportData Buffer containing an IN or FEATURE report from an attached device. + * \param[in,out] ReportItem Pointer to the report item of interest in a \ref HID_ReportInfo_t ReportItem array. * - * \returns Boolean true if the item to retrieve was located in the given report, false otherwise + * \returns Boolean true if the item to retrieve was located in the given report, false otherwise. */ - bool USB_GetHIDReportItemInfo(const uint8_t* ReportData, HID_ReportItem_t* const ReportItem) - ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2); + bool USB_GetHIDReportItemInfo(const uint8_t* ReportData, + HID_ReportItem_t* const ReportItem) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2); /** Retrieves the given report item's value out of the Value member of the report item's * \ref HID_ReportItem_t structure and places it into the correct position in the HID report @@ -305,22 +308,23 @@ * * If the device has multiple HID reports, the first byte in the report is set to the report ID of the given item. * - * \param[out] ReportData Buffer holding the current OUT or FEATURE report data - * \param[in] ReportItem Pointer to the report item of interest in a \ref HID_ReportInfo_t ReportItem array + * \param[out] ReportData Buffer holding the current OUT or FEATURE report data. + * \param[in] ReportItem Pointer to the report item of interest in a \ref HID_ReportInfo_t ReportItem array. */ - void USB_SetHIDReportItemInfo(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); + /** Retrieves the size of a given HID report in bytes from it's Report ID. * - * \param[in] ParserData Pointer to a \ref HID_ReportInfo_t instance containing the parser output - * \param[in] ReportID Report ID of the report whose size is to be retrieved + * \param[in] ParserData Pointer to a \ref HID_ReportInfo_t instance containing the parser output. + * \param[in] ReportID Report ID of the report whose size is to be retrieved. * \param[in] ReportType Type of the report whose size is to be determined, a valued from the - * \ref HID_ReportItemTypes_t enum + * \ref HID_ReportItemTypes_t enum. * - * \return Size of the report in bytes, or 0 if the report does not exist + * \return Size of the report in bytes, or 0 if the report does not exist. */ - uint16_t USB_GetHIDReportSize(HID_ReportInfo_t* const ParserData, const uint8_t ReportID, + 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); /** Callback routine for the HID Report Parser. This callback must be implemented by the user code when @@ -328,11 +332,11 @@ * HID_ReportInfo_t structure. This can be used to filter only those items the application will be using, so that * no RAM is wasted storing the attributes for report items which will never be referenced by the application. * - * \param[in] CurrentItem Pointer to the current report item for user checking + * \param[in] CurrentItem Pointer to the current report item for user checking. * - * \return Boolean true if the item should be stored into the HID_ReportInfo_t structure, false if it should be ignored + * \return Boolean true if the item should be stored into the HID_ReportInfo_t structure, false if it should be ignored. */ - bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_t* CurrentItem); + bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_t* const CurrentItem); /* Private Interface - For use in library only: */ #if !defined(__DOXYGEN__)