Expand the documentation for each Bootloader to give sample usage instructions for...
[pub/lufa.git] / Demos / Device / LowLevel / AudioInput / AudioInput.c
index 16ac90e..f62fcbe 100644 (file)
@@ -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()))