X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/f896c00c48f04fb9273555ab8d9b1af99f865d25..61ff4824a904d156e719ab2967b613cf095e908e:/LUFA/Drivers/USB/Class/Device/Audio.c?ds=sidebyside diff --git a/LUFA/Drivers/USB/Class/Device/Audio.c b/LUFA/Drivers/USB/Class/Device/Audio.c index e398f1c0e..b018d6686 100644 --- a/LUFA/Drivers/USB/Class/Device/Audio.c +++ b/LUFA/Drivers/USB/Class/Device/Audio.c @@ -33,7 +33,7 @@ #include "Audio.h" -void Audio_Device_ProcessControlPacket(USB_ClassInfo_Audio_Device_t* AudioInterfaceInfo) +void Audio_Device_ProcessControlPacket(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo) { if (!(Endpoint_IsSETUPReceived())) return; @@ -50,8 +50,7 @@ void Audio_Device_ProcessControlPacket(USB_ClassInfo_Audio_Device_t* AudioInterf AudioInterfaceInfo->State.InterfaceEnabled = (USB_ControlRequest.wValue != 0); - while (!(Endpoint_IsINReady())); - Endpoint_ClearIN(); + Endpoint_ClearStatusStage(); } break; @@ -60,6 +59,8 @@ void Audio_Device_ProcessControlPacket(USB_ClassInfo_Audio_Device_t* AudioInterf bool Audio_Device_ConfigureEndpoints(USB_ClassInfo_Audio_Device_t* AudioInterfaceInfo) { + memset(&AudioInterfaceInfo->State, 0x00, sizeof(AudioInterfaceInfo->State)); + if (AudioInterfaceInfo->Config.DataINEndpointNumber) { if (!(Endpoint_ConfigureEndpoint(AudioInterfaceInfo->Config.DataINEndpointNumber, EP_TYPE_ISOCHRONOUS, @@ -79,11 +80,11 @@ bool Audio_Device_ConfigureEndpoints(USB_ClassInfo_Audio_Device_t* AudioInterfac return false; } } - + return true; } -void Audio_Device_USBTask(USB_ClassInfo_Audio_Device_t* AudioInterfaceInfo) +void Audio_Device_USBTask(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo) { } @@ -124,7 +125,7 @@ int32_t Audio_Device_ReadSample24(void) return Sample; } -void Audio_Device_WriteSample8(int8_t Sample) +void Audio_Device_WriteSample8(const int8_t Sample) { Endpoint_Write_Byte(Sample); @@ -132,7 +133,7 @@ void Audio_Device_WriteSample8(int8_t Sample) Endpoint_ClearIN(); } -void Audio_Device_WriteSample16(int16_t Sample) +void Audio_Device_WriteSample16(const int16_t Sample) { Endpoint_Write_Word_LE(Sample); @@ -140,7 +141,7 @@ void Audio_Device_WriteSample16(int16_t Sample) Endpoint_ClearIN(); } -void Audio_Device_WriteSample24(int32_t Sample) +void Audio_Device_WriteSample24(const int32_t Sample) { Endpoint_Write_Byte(Sample >> 16); Endpoint_Write_Word_LE(Sample); @@ -149,13 +150,13 @@ void Audio_Device_WriteSample24(int32_t Sample) Endpoint_ClearIN(); } -bool Audio_Device_IsSampleReceived(USB_ClassInfo_Audio_Device_t* AudioInterfaceInfo) +bool Audio_Device_IsSampleReceived(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo) { Endpoint_SelectEndpoint(AudioInterfaceInfo->Config.DataOUTEndpointNumber); return Endpoint_IsOUTReceived(); } -bool Audio_Device_IsReadyForNextSample(USB_ClassInfo_Audio_Device_t* AudioInterfaceInfo) +bool Audio_Device_IsReadyForNextSample(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo) { Endpoint_SelectEndpoint(AudioInterfaceInfo->Config.DataINEndpointNumber); return Endpoint_IsINReady();