Pipe_BoundEndpointNumber() has been renamed to Pipe_GetBoundEndpointAddress(), and...
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Host / Audio.c
index 7397ef9..0da1eb6 100644 (file)
@@ -194,7 +194,7 @@ static uint8_t DComp_NextAudioInterfaceDataEndpoint(void* CurrentDescriptor)
        return DESCRIPTOR_SEARCH_NotFound;\r
 }\r
 \r
-uint8_t AUDIO_Host_StartStopStreaming(USB_ClassInfo_Audio_Host_t* const AudioInterfaceInfo,\r
+uint8_t Audio_Host_StartStopStreaming(USB_ClassInfo_Audio_Host_t* const AudioInterfaceInfo,\r
                                                  bool EnableStreaming)\r
 {\r
        if (!(AudioInterfaceInfo->State.IsActive))\r
@@ -204,5 +204,37 @@ uint8_t AUDIO_Host_StartStopStreaming(USB_ClassInfo_Audio_Host_t* const AudioInt
                                               EnableStreaming ? AudioInterfaceInfo->State.EnabledStreamingAltIndex : 0);\r
 }\r
 \r
+uint8_t Audio_GetSetEndpointProperty(USB_ClassInfo_Audio_Host_t* const AudioInterfaceInfo,\r
+                                                const uint8_t DataPipeIndex,\r
+                                                const uint8_t EndpointProperty,\r
+                                                const uint8_t EndpointControl,\r
+                                                uint16_t const DataLength,\r
+                                                uint8_t* Data)\r
+{\r
+       uint8_t RequestType;\r
+       uint8_t EndpointAddress;\r
+       \r
+       if (EndpointProperty & 0x80)\r
+         RequestType = (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE);\r
+       else\r
+         RequestType = (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE);       \r
+         \r
+       Pipe_SelectPipe(DataPipeIndex);\r
+       EndpointAddress = Pipe_GetBoundEndpointAddress();\r
+\r
+       USB_ControlRequest = (USB_Request_Header_t)\r
+               {\r
+                       .bmRequestType = RequestType,\r
+                       .bRequest      = EndpointProperty,\r
+                       .wValue        = ((uint16_t)EndpointControl << 8),\r
+                       .wIndex        = EndpointAddress,\r
+                       .wLength       = DataLength,\r
+               };\r
+\r
+       Pipe_SelectPipe(PIPE_CONTROLPIPE);\r
+\r
+       return USB_Host_SendControlRequest(Data);       \r
+}\r
+\r
 #endif\r
 \r