Add new functions to the HID host class driver, refine HID interface protocol matching.
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Host / HID.h
index e67103a..d94fa2e 100644 (file)
                                {\r
                                        uint8_t  DataINPipeNumber; /**< Pipe number of the HID interface's IN data pipe */\r
                                        uint8_t  DataOUTPipeNumber; /**< Pipe number of the HID interface's OUT data pipe */\r
-                                       \r
-                                       bool     MatchInterfaceProtocol; /**< Indicates whether the driver should match the device's\r
-                                                                         *   HID interface protocol's value to the \ref HIDInterfaceProtocol\r
-                                                                         *   suppled (otherwise just accept all HID class devices)\r
-                                                                         */\r
-                                       uint8_t  HIDInterfaceProtocol; /**< HID interface protocol value to match against if the\r
-                                                                       *   \ref MatchInterfaceProtocol is set to true (ignored otherwise)\r
+\r
+                                       uint8_t  HIDInterfaceProtocol; /**< HID interface protocol value to match against if a specific\r
+                                                                       *   boot subclass protocol is required (e.g. keyboard, mouse), or\r
+                                                                       *   leave as 0 to match against the first HID interface found\r
                                                                        */\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
                                struct\r
                                {\r
-                                       bool Active; /**< Indicates if the current interface instance is connected to an attached device */\r
+                                       bool Active; /**< Indicates if the current interface instance is connected to an attached device, valid\r
+                                                     *   after \ref HID_Host_ConfigurePipes() is called and the Host state machine is in the\r
+                                                     *   Configured state\r
+                                                     */\r
+                                       uint8_t InterfaceNumber; /**< Interface index of the HID interface within the attached device */\r
 \r
                                        uint16_t DataINPipeSize; /**< Size in bytes of the HID interface's IN data pipe */\r
                                        uint16_t DataOUTPipeSize;  /**< Size in bytes of the HID interface's OUT data pipe */\r
+                                       \r
+                                       bool SupportsBootSubClass; /**< Indicates if the current interface instance supports the HID Boot\r
+                                                                   *   Protocol when enabled via \ref USB_HID_Host_SetProtocol()\r
+                                                                   */\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
                        uint8_t HID_Host_ConfigurePipes(USB_ClassInfo_HID_Host_t* HIDInterfaceInfo, uint16_t ConfigDescriptorLength,\r
                                                        uint8_t* DeviceConfigDescriptor);\r
 \r
-                       bool HID_Host_IsReportReceived(USB_ClassInfo_HID_Host_t* HIDInterfaceInfo);\r
+                       bool    HID_Host_IsReportReceived(USB_ClassInfo_HID_Host_t* HIDInterfaceInfo);\r
+                       uint8_t USB_HID_Host_SetProtocol(USB_ClassInfo_HID_Host_t* HIDInterfaceInfo, bool UseReportProtocol);\r
                \r
        /* Private Interface - For use in library only: */\r
        #if !defined(__DOXYGEN__)\r