X-Git-Url: http://git.linex4red.de/pub/lufa.git/blobdiff_plain/1d433d4506113c95285f633e3553ff62d4cfd05d..78cfaac9b4fc9ae15652f18e9abb79dcedfcd4b5:/Demos/Device/LowLevel/AudioOutput/AudioOutput.c diff --git a/Demos/Device/LowLevel/AudioOutput/AudioOutput.c b/Demos/Device/LowLevel/AudioOutput/AudioOutput.c index 826073230..22cfac4d9 100644 --- a/Demos/Device/LowLevel/AudioOutput/AudioOutput.c +++ b/Demos/Device/LowLevel/AudioOutput/AudioOutput.c @@ -37,7 +37,8 @@ #include "AudioOutput.h" /** Flag to indicate if the streaming audio alternative interface has been selected by the host. */ -bool StreamingAudioInterfaceSelected = false; +static bool StreamingAudioInterfaceSelected = false; + /** Main program entry point. This routine contains the overall program flow, including initial * setup of all components and the main program loop. @@ -168,6 +169,15 @@ void EVENT_USB_Device_ControlRequest(void) } break; + case AUDIO_REQ_GetStatus: + /* Get Status request can be directed at either the interface or endpoint, neither is currently used + * according to the latest USB Audio 1.0 standard, but must be ACKed with no data when requested */ + if ((USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE)) || + (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_ENDPOINT))) + { + Endpoint_ClearSETUP(); + Endpoint_ClearStatusStage(); + } } } @@ -183,8 +193,8 @@ ISR(TIMER0_COMPA_vect, ISR_BLOCK) if (Endpoint_IsOUTReceived() && StreamingAudioInterfaceSelected) { /* Retrieve the signed 16-bit left and right audio samples, convert to 8-bit */ - int8_t LeftSample_8Bit = ((int16_t)Endpoint_Read_Word_LE() >> 8); - int8_t RightSample_8Bit = ((int16_t)Endpoint_Read_Word_LE() >> 8); + int8_t LeftSample_8Bit = ((int16_t)Endpoint_Read_16_LE() >> 8); + int8_t RightSample_8Bit = ((int16_t)Endpoint_Read_16_LE() >> 8); /* Mix the two channels together to produce a mono, 8-bit sample */ int8_t MixedSample_8Bit = (((int16_t)LeftSample_8Bit + (int16_t)RightSample_8Bit) >> 1);