Commit deaab900 authored by Dean Camera's avatar Dean Camera
Browse files

Ensure that only the requested Audio class pipes are mapped to endpoints...

Ensure that only the requested Audio class pipes are mapped to endpoints within the device for a specific Audio Host Class driver instance.

Fix const-correctness of the Audio Host Class driver.
parent 6e0a2608
......@@ -51,7 +51,8 @@ uint8_t Audio_Host_ConfigurePipes(USB_ClassInfo_Audio_Host_t* const AudioInterfa
if (DESCRIPTOR_TYPE(ConfigDescriptorData) != DTYPE_Configuration)
return AUDIO_ENUMERROR_InvalidConfigDescriptor;
while (!(DataINEndpoint) || !(DataOUTEndpoint))
while ((AudioInterfaceInfo->Config.DataINPipeNumber && !(DataINEndpoint)) ||
(AudioInterfaceInfo->Config.DataOUTPipeNumber && !(DataOUTEndpoint)))
{
if (!(AudioControlInterface) ||
USB_GetNextDescriptorComp(&ConfigDescriptorSize, &ConfigDescriptorData,
......@@ -78,6 +79,9 @@ uint8_t Audio_Host_ConfigurePipes(USB_ClassInfo_Audio_Host_t* const AudioInterfa
AudioStreamingInterface = DESCRIPTOR_PCAST(ConfigDescriptorData, USB_Descriptor_Interface_t);
DataINEndpoint = NULL;
DataOUTEndpoint = NULL;
continue;
}
......@@ -195,7 +199,7 @@ static uint8_t DComp_NextAudioInterfaceDataEndpoint(void* CurrentDescriptor)
}
uint8_t Audio_Host_StartStopStreaming(USB_ClassInfo_Audio_Host_t* const AudioInterfaceInfo,
bool EnableStreaming)
const bool EnableStreaming)
{
if (!(AudioInterfaceInfo->State.IsActive))
return HOST_SENDCONTROL_DeviceDisconnected;
......@@ -208,7 +212,7 @@ uint8_t Audio_GetSetEndpointProperty(USB_ClassInfo_Audio_Host_t* const AudioInte
const uint8_t DataPipeIndex,
const uint8_t EndpointProperty,
const uint8_t EndpointControl,
uint16_t const DataLength,
const uint16_t DataLength,
void* const Data)
{
if (!(AudioInterfaceInfo->State.IsActive))
......
......@@ -145,7 +145,7 @@
* \return A value from the \ref USB_Host_SendControlErrorCodes_t enum.
*/
uint8_t Audio_Host_StartStopStreaming(USB_ClassInfo_Audio_Host_t* const AudioInterfaceInfo,
bool EnableStreaming);
const bool EnableStreaming);
/** Gets or sets the specified property of a streaming audio class endpoint that is bound to a pipe in the given
* class instance.
......@@ -165,7 +165,7 @@
const uint8_t DataPipeIndex,
const uint8_t EndpointProperty,
const uint8_t EndpointControl,
uint16_t const DataLength,
const uint16_t DataLength,
void* const Data);
/* Inline Functions: */
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment