Add new USB_Host_GetDeviceStringDescriptor() convenience function.
[pub/USBasp.git] / LUFA / Drivers / USB / LowLevel / Host.c
index 98185a4..e10d347 100644 (file)
@@ -308,6 +308,22 @@ uint8_t USB_Host_GetDeviceDescriptor(void* const DeviceDescriptorPtr)
        return USB_Host_SendControlRequest(DeviceDescriptorPtr);\r
 }\r
 \r
+uint8_t USB_Host_GetDeviceStringDescriptor(uint8_t Index, void* const Buffer, uint8_t BufferLength)\r
+{\r
+       USB_ControlRequest = (USB_Request_Header_t)\r
+               {\r
+                       bmRequestType: (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE),\r
+                       bRequest:      REQ_GetDescriptor,\r
+                       wValue:        (DTYPE_String << 8) | Index,\r
+                       wIndex:        0,\r
+                       wLength:       BufferLength,\r
+               };\r
+\r
+       Pipe_SelectPipe(PIPE_CONTROLPIPE);\r
+       \r
+       return USB_Host_SendControlRequest(Buffer);\r
+}\r
+\r
 uint8_t USB_Host_ClearPipeStall(uint8_t EndpointNum)\r
 {\r
        if (Pipe_GetPipeToken() == PIPE_TOKEN_IN)\r