X-Git-Url: http://git.linex4red.de/pub/lufa.git/blobdiff_plain/0ce2950d811b8dc11e46602e7490d795d8ddfb5d..c2135f2776e01842a775502c24b59d9169ffa851:/Demos/Device/LowLevel/AudioInput/AudioInput.c diff --git a/Demos/Device/LowLevel/AudioInput/AudioInput.c b/Demos/Device/LowLevel/AudioInput/AudioInput.c index 16ac90e8f..f62fcbec5 100644 --- a/Demos/Device/LowLevel/AudioInput/AudioInput.c +++ b/Demos/Device/LowLevel/AudioInput/AudioInput.c @@ -1,13 +1,13 @@ /* LUFA Library - Copyright (C) Dean Camera, 2010. + Copyright (C) Dean Camera, 2011. dean [at] fourwalledcubicle [dot] com www.lufa-lib.org */ /* - Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) + Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com) Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted @@ -37,7 +37,8 @@ #include "AudioInput.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. @@ -142,6 +143,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(); + } } } @@ -179,7 +189,7 @@ ISR(TIMER0_COMPA_vect, ISR_BLOCK) #endif /* Write the sample to the buffer */ - Endpoint_Write_Word_LE(AudioSample); + Endpoint_Write_16_LE(AudioSample); /* Check to see if the bank is now full */ if (!(Endpoint_IsReadWriteAllowed()))