aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA/Drivers/USB/Class/Host/HID.h
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2009-08-11 09:12:29 +0000
committerDean Camera <dean@fourwalledcubicle.com>2009-08-11 09:12:29 +0000
commitc86491af8b24679984a3fc5effc7675779652e4c (patch)
tree7709d0549ff5bc2354403c4da82574d8461f3e79 /LUFA/Drivers/USB/Class/Host/HID.h
parenta2001ac1ccf4d4919c8243fbc69aff0b68973d3f (diff)
downloadlufa-c86491af8b24679984a3fc5effc7675779652e4c.tar.gz
lufa-c86491af8b24679984a3fc5effc7675779652e4c.tar.bz2
lufa-c86491af8b24679984a3fc5effc7675779652e4c.zip
Add new functions to the HID host class driver, refine HID interface protocol matching.
Remove stray state variable from the CDC host class driver.
Diffstat (limited to 'LUFA/Drivers/USB/Class/Host/HID.h')
-rw-r--r--LUFA/Drivers/USB/Class/Host/HID.h24
1 files changed, 15 insertions, 9 deletions
diff --git a/LUFA/Drivers/USB/Class/Host/HID.h b/LUFA/Drivers/USB/Class/Host/HID.h
index e67103a69..d94fa2e0e 100644
--- a/LUFA/Drivers/USB/Class/Host/HID.h
+++ b/LUFA/Drivers/USB/Class/Host/HID.h
@@ -66,23 +66,28 @@
{
uint8_t DataINPipeNumber; /**< Pipe number of the HID interface's IN data pipe */
uint8_t DataOUTPipeNumber; /**< Pipe number of the HID interface's OUT data pipe */
-
- bool MatchInterfaceProtocol; /**< Indicates whether the driver should match the device's
- * HID interface protocol's value to the \ref HIDInterfaceProtocol
- * suppled (otherwise just accept all HID class devices)
- */
- uint8_t HIDInterfaceProtocol; /**< HID interface protocol value to match against if the
- * \ref MatchInterfaceProtocol is set to true (ignored otherwise)
+
+ uint8_t HIDInterfaceProtocol; /**< HID interface protocol value to match against if a specific
+ * boot subclass protocol is required (e.g. keyboard, mouse), or
+ * leave as 0 to match against the first HID interface found
*/
} Config; /**< Config data for the USB class interface within the device. All elements in this section
* <b>must</b> be set or the interface will fail to enumerate and operate correctly.
*/
struct
{
- bool Active; /**< Indicates if the current interface instance is connected to an attached device */
+ bool Active; /**< Indicates if the current interface instance is connected to an attached device, valid
+ * after \ref HID_Host_ConfigurePipes() is called and the Host state machine is in the
+ * Configured state
+ */
+ uint8_t InterfaceNumber; /**< Interface index of the HID interface within the attached device */
uint16_t DataINPipeSize; /**< Size in bytes of the HID interface's IN data pipe */
uint16_t DataOUTPipeSize; /**< Size in bytes of the HID interface's OUT data pipe */
+
+ bool SupportsBootSubClass; /**< Indicates if the current interface instance supports the HID Boot
+ * Protocol when enabled via \ref USB_HID_Host_SetProtocol()
+ */
} State; /**< State data for the USB class interface within the device. All elements in this section
* <b>may</b> be set to initial values, but may also be ignored to default to sane values when
* the interface is enumerated.
@@ -103,7 +108,8 @@
uint8_t HID_Host_ConfigurePipes(USB_ClassInfo_HID_Host_t* HIDInterfaceInfo, uint16_t ConfigDescriptorLength,
uint8_t* DeviceConfigDescriptor);
- bool HID_Host_IsReportReceived(USB_ClassInfo_HID_Host_t* HIDInterfaceInfo);
+ bool HID_Host_IsReportReceived(USB_ClassInfo_HID_Host_t* HIDInterfaceInfo);
+ uint8_t USB_HID_Host_SetProtocol(USB_ClassInfo_HID_Host_t* HIDInterfaceInfo, bool UseReportProtocol);
/* Private Interface - For use in library only: */
#if !defined(__DOXYGEN__)