Remove USE_NONSTANDARD_DESCRIPTOR_NAMES compile time token, split out standard descri...
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Host / HID.h
index dd4a753..c1a68f8 100644 (file)
                #endif\r
 \r
        /* Public Interface - May be used in end-application: */\r
+               /* Macros: */\r
+                       /** Error code for some HID Host functions, indicating a logical (and not hardware) error */\r
+                       #define MS_ERROR_UNSUPPORTED              0xC0\r
+       \r
                /* Type Defines: */\r
                        /** Class state structure. An instance of this structure should be made within the user application,\r
                         *  and passed to each of the HID class driver functions as the HIDInterfaceInfo parameter. This\r
@@ -71,6 +75,8 @@
                                                                        *   boot subclass protocol is required (e.g. keyboard, mouse), or\r
                                                                        *   leave as 0 to match against the first HID interface found\r
                                                                        */\r
+                                       HID_ReportInfo_t* HIDParserData; /**< HID parser data to store the parsed HID report data, when boot protocol\r
+                                                                         *   is not used */\r
                                } Config; /**< Config data for the USB class interface within the device. All elements in this section\r
                                           *   <b>must</b> be set or the interface will fail to enumerate and operate correctly.\r
                                           */\r
@@ -88,6 +94,7 @@
                                        bool SupportsBootSubClass; /**< Indicates if the current interface instance supports the HID Boot\r
                                                                    *   Protocol when enabled via \ref USB_HID_Host_SetProtocol()\r
                                                                    */\r
+                                       uint16_t HIDReportSize; /**< Size in bytes of the HID report descriptor in the device */\r
                                } State; /**< State data for the USB class interface within the device. All elements in this section\r
                                                  *   <b>may</b> be set to initial values, but may also be ignored to default to sane values when\r
                                                  *   the interface is enumerated.\r
                                HID_ENUMERROR_NoError                    = 0, /**< Configuration Descriptor was processed successfully */\r
                                HID_ENUMERROR_InvalidConfigDescriptor    = 1, /**< The device returned an invalid Configuration Descriptor */\r
                                HID_ENUMERROR_NoHIDInterfaceFound        = 2, /**< A compatible HID interface was not found in the device's Configuration Descriptor */\r
-                               HID_ENUMERROR_EndpointsNotFound          = 3, /**< Compatible HID endpoints were not found in the device's HID interface */\r
+                               HID_ENUMERROR_NoHIDDescriptorFound       = 3, /**< The HID descriptor was not found in the device's HID interface */\r
+                               HID_ENUMERROR_EndpointsNotFound          = 4, /**< Compatible HID endpoints were not found in the device's HID interface */\r
                        };\r
        \r
                /* Function Prototypes: */\r
                                                        uint8_t* DeviceConfigDescriptor) ATTR_NON_NULL_PTR_ARG(1, 3);\r
 \r
                        bool    HID_Host_IsReportReceived(USB_ClassInfo_HID_Host_t* HIDInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);\r
+                       \r
                        uint8_t USB_HID_Host_SetProtocol(USB_ClassInfo_HID_Host_t* HIDInterfaceInfo, bool UseReportProtocol) ATTR_NON_NULL_PTR_ARG(1);\r
                \r
        /* Private Interface - For use in library only: */\r
                /* Function Prototypes: */\r
                        #if defined(INCLUDE_FROM_HID_CLASS_HOST_C)\r
                                static uint8_t DComp_HID_Host_NextHIDInterface(void* CurrentDescriptor) ATTR_NON_NULL_PTR_ARG(1);\r
+                               static uint8_t DComp_NextHID(void* CurrentDescriptor) ATTR_NON_NULL_PTR_ARG(1);\r
                                static uint8_t DComp_HID_Host_NextHIDInterfaceEndpoint(void* CurrentDescriptor) ATTR_NON_NULL_PTR_ARG(1);\r
                        #endif  \r
        #endif  \r