Ensure that only the requested Audio class pipes are mapped to endpoints within the...
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Host / Audio.c
index 5760b6a..2380913 100644 (file)
@@ -51,7 +51,8 @@ uint8_t Audio_Host_ConfigurePipes(USB_ClassInfo_Audio_Host_t* const AudioInterfa
        if (DESCRIPTOR_TYPE(ConfigDescriptorData) != DTYPE_Configuration)\r
          return AUDIO_ENUMERROR_InvalidConfigDescriptor;\r
 \r
-       while (!(DataINEndpoint) || !(DataOUTEndpoint))\r
+       while ((AudioInterfaceInfo->Config.DataINPipeNumber  && !(DataINEndpoint)) ||\r
+              (AudioInterfaceInfo->Config.DataOUTPipeNumber && !(DataOUTEndpoint)))\r
        {\r
                if (!(AudioControlInterface) ||\r
                    USB_GetNextDescriptorComp(&ConfigDescriptorSize, &ConfigDescriptorData,\r
@@ -77,6 +78,9 @@ uint8_t Audio_Host_ConfigurePipes(USB_ClassInfo_Audio_Host_t* const AudioInterfa
                        }\r
 \r
                        AudioStreamingInterface = DESCRIPTOR_PCAST(ConfigDescriptorData, USB_Descriptor_Interface_t);\r
+                       \r
+                       DataINEndpoint  = NULL;\r
+                       DataOUTEndpoint = NULL;\r
 \r
                        continue;\r
                }\r
@@ -195,7 +199,7 @@ static uint8_t DComp_NextAudioInterfaceDataEndpoint(void* CurrentDescriptor)
 }\r
 \r
 uint8_t Audio_Host_StartStopStreaming(USB_ClassInfo_Audio_Host_t* const AudioInterfaceInfo,\r
-                                                 bool EnableStreaming)\r
+                                                 const bool EnableStreaming)\r
 {\r
        if (!(AudioInterfaceInfo->State.IsActive))\r
          return HOST_SENDCONTROL_DeviceDisconnected;\r
@@ -208,7 +212,7 @@ uint8_t Audio_GetSetEndpointProperty(USB_ClassInfo_Audio_Host_t* const AudioInte
                                                 const uint8_t DataPipeIndex,\r
                                                 const uint8_t EndpointProperty,\r
                                                 const uint8_t EndpointControl,\r
-                                                uint16_t const DataLength,\r
+                                                const uint16_t DataLength,\r
                                                 void* const Data)\r
 {\r
        if (!(AudioInterfaceInfo->State.IsActive))\r