X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/039a714ee46268c07928c79b30403f29d4040fe8..738c9203fccfdcd11e4fc5bcb3ca4d102d15e1cd:/LUFA/Drivers/USB/Class/Host/HID.h diff --git a/LUFA/Drivers/USB/Class/Host/HID.h b/LUFA/Drivers/USB/Class/Host/HID.h index 901832476..08410f2b1 100644 --- a/LUFA/Drivers/USB/Class/Host/HID.h +++ b/LUFA/Drivers/USB/Class/Host/HID.h @@ -38,12 +38,11 @@ */ /** \ingroup Group_USBClassHID - * @defgroup Group_USBClassHIDHost HID Class Host Mode Driver + * \defgroup Group_USBClassHIDHost HID Class Host Mode Driver * * \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/HID.c (Makefile source module name: LUFA_SRC_USBCLASS) - * - LUFA/Drivers/USB/Class/Common/HIDParser.c (Makefile source module name: LUFA_SRC_USB) * * \section Sec_ModDescription Module Description * Host Mode USB Class driver framework interface, for the HID USB Class driver. @@ -149,11 +148,6 @@ * device. This should be called once after the stack has enumerated the attached device, while the host state * machine is in the Addressed state. * - * \note The pipe index numbers as given in the interface's configuration structure must not overlap with any other - * interface, or pipe bank corruption will occur. Gaps in the allocated pipe numbers or non-sequential indexes - * within a single interface is allowed, but no two interfaces of any type have have interleaved pipe indexes. - * \n\n - * * \note Once the device pipes are configured, the HID device's reporting protocol must be set via a call * to either the \ref HID_Host_SetBootProtocol() or \ref HID_Host_SetReportProtocol() function. * @@ -257,6 +251,18 @@ */ uint8_t HID_Host_SetBootProtocol(USB_ClassInfo_HID_Host_t* const HIDInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1); + /** Sets the idle period for the attached HID device to the specified interval. The HID idle period determines the rate + * at which the device should send a report, when no state changes have ocurred; i.e. on HID keyboards, this sets the + * hardware key repeat interval. + * + * \param[in,out] HIDInterfaceInfo Pointer to a structure containing a HID Class host configuration and state. + * \param[in] MS Idle period as a multiple of four milliseconds, zero to disable hardware repeats + * + * \return A value from the \ref USB_Host_SendControlErrorCodes_t enum. + */ + uint8_t HID_Host_SetIdlePeriod(USB_ClassInfo_HID_Host_t* const HIDInterfaceInfo, + const uint16_t MS) ATTR_NON_NULL_PTR_ARG(1); + #if !defined(HID_HOST_BOOT_PROTOCOL_ONLY) /** Switches the attached HID device's reporting protocol over to the standard Report protocol mode. This also retrieves * and parses the device's HID report descriptor, so that the size of each report can be determined in advance. @@ -284,7 +290,7 @@ * * \param[in,out] HIDInterfaceInfo Pointer to a structure containing a HID Class host configuration and state. */ - static inline void HID_Host_USBTask(USB_ClassInfo_HID_Host_t* const HIDInterfaceInfo); + static inline void HID_Host_USBTask(USB_ClassInfo_HID_Host_t* const HIDInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1); static inline void HID_Host_USBTask(USB_ClassInfo_HID_Host_t* const HIDInterfaceInfo) { (void)HIDInterfaceInfo; @@ -294,9 +300,12 @@ #if !defined(__DOXYGEN__) /* Function Prototypes: */ #if defined(__INCLUDE_FROM_HID_HOST_C) - static uint8_t DCOMP_HID_Host_NextHIDInterface(void* const CurrentDescriptor) ATTR_NON_NULL_PTR_ARG(1); - static uint8_t DCOMP_HID_Host_NextHID(void* const CurrentDescriptor) ATTR_NON_NULL_PTR_ARG(1); - static uint8_t DCOMP_HID_Host_NextHIDInterfaceEndpoint(void* const CurrentDescriptor) ATTR_NON_NULL_PTR_ARG(1); + static uint8_t DCOMP_HID_Host_NextHIDInterface(void* const CurrentDescriptor) + ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(1); + static uint8_t DCOMP_HID_Host_NextHIDDescriptor(void* const CurrentDescriptor) + ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(1); + static uint8_t DCOMP_HID_Host_NextHIDInterfaceEndpoint(void* const CurrentDescriptor) + ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(1); #endif #endif