Get rid of the redundant ATTR_NEVER_INLINE macro which translated to the same as...
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Common / HIDParser.h
index 7b9dd9d..f5454c3 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2011.
+     Copyright (C) Dean Camera, 2013.
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
-  Copyright 2011  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2013  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
@@ -18,7 +18,7 @@
   advertising or publicity pertaining to distribution of the
   software without specific, written prior permission.
 
-  The author disclaim all warranties with regard to this
+  The author disclaims all warranties with regard to this
   software, including all implied warranties of merchantability
   and fitness.  In no event shall the author be liable for any
   special, indirect or consequential damages or any damages
  *  \defgroup Group_HIDParser HID Report Parser
  *  \brief USB Human Interface Device (HID) Class report descriptor parser.
  *
- *  \section Sec_Dependencies Module Source Dependencies
+ *  \section Sec_HIDParser_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 <i>(Makefile source module name: LUFA_SRC_USB)</i>
  *
- *  \section Sec_ModDescription Module Description
+ *  \section Sec_HIDParser_ModDescription Module Description
  *  Human Interface Device (HID) class report descriptor parser. This module implements a parser than is
  *  capable of processing a complete HID report descriptor, and outputting a flat structure containing the
  *  contents of the report in an a more friendly format. The parsed data may then be further processed and used
@@ -70,8 +70,8 @@
                #include "../../../../Common/Common.h"
 
                #include "HIDReportData.h"
-               #include "../Common/HID.h"
-               
+               #include "HIDClassCommon.h"
+
        /* Enable C linkage for C++ Compilers: */
                #if defined(__cplusplus)
                        extern "C" {
                        {
                                uint16_t                    BitOffset;      /**< Bit offset in the IN, OUT or FEATURE report of the item. */
                                uint8_t                     ItemType;       /**< Report item type, a value in \ref HID_ReportItemTypes_t. */
-                               uint16_t                    ItemFlags;      /**< Item data flags, a mask of HID_IOF_* constants. */
+                               uint16_t                    ItemFlags;      /**< Item data flags, a mask of \c HID_IOF_* constants. */
                                uint8_t                     ReportID;       /**< Report ID this item belongs to, or 0x00 if device has only one report */
                                HID_CollectionPath_t*       CollectionPath; /**< Collection path of the item. */
 
                         *  \returns Boolean \c true if the item to retrieve was located in the given report, \c 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);
+                                                     HID_ReportItem_t* const ReportItem) ATTR_NON_NULL_PTR_ARG(1);
 
                        /** Retrieves the given report item's value out of the \c Value member of the report item's
                         *  \ref HID_ReportItem_t structure and places it into the correct position in the HID report
                         *  \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);
+                                                     HID_ReportItem_t* const ReportItem) ATTR_NON_NULL_PTR_ARG(1);
 
                        /** Retrieves the size of a given HID report in bytes from its Report ID.
                         *
                         *  \ref 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.
                         *
+                        *  Report item pointers passed to this callback function may be cached by the user application for later use
+                        *  when processing report items. This provides faster report processing in the user application than would
+                        *  a search of the entire parsed report item table for each received or sent report.
+                        *
                         *  \param[in] CurrentItem  Pointer to the current report item for user checking.
                         *
                         *  \return Boolean \c true if the item should be stored into the \ref HID_ReportInfo_t structure, \c false if