*/\r
uint8_t USB_Host_GetDeviceDescriptor(void* const DeviceDescriptorPtr);\r
\r
+ /** Convenience function. This routine sends a GetDescriptor standard request to the attached\r
+ * device, requesting the string descriptor of the specified index. This can be used to easily\r
+ * retrieve string descriptors from the device by index, after the index is obtained from the\r
+ * Device or Configuration descriptors.\r
+ *\r
+ * \note After this routine returns, the control pipe will be selected.\r
+ *\r
+ * \param[in] Index Index of the string index to retrieve\r
+ * \param[out] Buffer Pointer to the destination buffer where the retrieved string decriptor is\r
+ * to be stored\r
+ * \param[in] BufferLength Maximum size of the string descriptor which can be stored into the buffer\r
+ *\r
+ * \return A value from the \ref USB_Host_SendControlErrorCodes_t enum to indicate the result.\r
+ */\r
+ uint8_t USB_Host_GetDeviceStringDescriptor(uint8_t Index, void* const Buffer, uint8_t BufferLength);\r
+ \r
/** Clears a stall condition on the given pipe, via a ClearFeature request to the attached device.\r
*\r
* \note After this routine returns, the control pipe will be selected.\r
*/\r
};\r
\r
- /** Enum for the error codes for the \ref EVENT_USB_HostError() event.\r
+ /** Enum for the error codes for the \ref EVENT_USB_Host_HostError() event.\r
*\r
* \see \ref Group_Events for more information on this event.\r
*/\r
*/\r
};\r
\r
- /** Enum for the error codes for the \ref EVENT_USB_DeviceEnumerationFailed() event.\r
+ /** Enum for the error codes for the \ref EVENT_USB_Host_DeviceEnumerationFailed() event.\r
*\r
* \see \ref Group_Events for more information on this event.\r
*/\r
enum USB_Host_EnumerationErrorCodes_t\r
{\r
HOST_ENUMERROR_NoError = 0, /**< No error occurred. Used internally, this is not a valid\r
- * ErrorCode parameter value for the \ref EVENT_USB_DeviceEnumerationFailed()\r
+ * ErrorCode parameter value for the \ref EVENT_USB_Host_DeviceEnumerationFailed()\r
* event.\r
*/\r
HOST_ENUMERROR_WaitStage = 1, /**< One of the delays between enumeration steps failed\r
#define USB_Host_VBUS_Auto_Off() MACROS{ OTGCON |= (1 << VBUSRQC); }MACROE\r
#define USB_Host_VBUS_Manual_Off() MACROS{ PORTE &= ~(1 << 7); }MACROE\r
\r
- #define USB_Host_SetDeviceAddress(addr) MACROS{ UHADDR = (addr & 0x7F); }MACROE\r
+ #define USB_Host_SetDeviceAddress(addr) MACROS{ UHADDR = ((addr) & 0x7F); }MACROE\r
\r
/* Enums: */\r
enum USB_Host_WaitMSErrorCodes_t\r