diff options
author | Dean Camera <dean@fourwalledcubicle.com> | 2011-07-04 09:18:50 +0000 |
---|---|---|
committer | Dean Camera <dean@fourwalledcubicle.com> | 2011-07-04 09:18:50 +0000 |
commit | 61861c548eabf6863af57a9aa20103fcd3a9aced (patch) | |
tree | ebbc80b96ffb5f1c6d452ece696282f46b004412 /LUFA/Drivers | |
parent | b7759958674db4c4256e6e3919431791709acee2 (diff) | |
download | lufa-61861c548eabf6863af57a9aa20103fcd3a9aced.tar.gz lufa-61861c548eabf6863af57a9aa20103fcd3a9aced.tar.bz2 lufa-61861c548eabf6863af57a9aa20103fcd3a9aced.zip |
Added new HID_Host_SetIdlePeriod() function to the HID Host Class driver.
Diffstat (limited to 'LUFA/Drivers')
-rw-r--r-- | LUFA/Drivers/USB/Class/Host/HID.c | 16 | ||||
-rw-r--r-- | LUFA/Drivers/USB/Class/Host/HID.h | 10 |
2 files changed, 26 insertions, 0 deletions
diff --git a/LUFA/Drivers/USB/Class/Host/HID.c b/LUFA/Drivers/USB/Class/Host/HID.c index aab35b109..683458de5 100644 --- a/LUFA/Drivers/USB/Class/Host/HID.c +++ b/LUFA/Drivers/USB/Class/Host/HID.c @@ -357,6 +357,22 @@ uint8_t HID_Host_SetBootProtocol(USB_ClassInfo_HID_Host_t* const HIDInterfaceInf return HOST_SENDCONTROL_Successful; } +uint8_t HID_Host_SetIdlePeriod(const uint16_t MS) +{ + USB_ControlRequest = (USB_Request_Header_t) + { + .bmRequestType = (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_INTERFACE), + .bRequest = HID_REQ_SetIdle, + .wValue = ((MS << 6) & 0xFF00), + .wIndex = HIDInterfaceInfo->State.InterfaceNumber, + .wLength = 0, + }; + + Pipe_SelectPipe(PIPE_CONTROLPIPE); + + return USB_Host_SendControlRequest(HIDReportData); +} + #if !defined(HID_HOST_BOOT_PROTOCOL_ONLY) uint8_t HID_Host_SetReportProtocol(USB_ClassInfo_HID_Host_t* const HIDInterfaceInfo) { diff --git a/LUFA/Drivers/USB/Class/Host/HID.h b/LUFA/Drivers/USB/Class/Host/HID.h index 878a0990b..1c6c7d232 100644 --- a/LUFA/Drivers/USB/Class/Host/HID.h +++ b/LUFA/Drivers/USB/Class/Host/HID.h @@ -251,6 +251,16 @@ */ 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] 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(const uint16_t MS); + #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. |