Changed all Device mode LowLevel demos and Device Class drivers so that the control...
[pub/USBasp.git] / Demos / Device / LowLevel / AudioInput / AudioInput.c
index 6655a27..4abc174 100644 (file)
@@ -110,16 +110,14 @@ void EVENT_USB_Device_Disconnect(void)
  */
 void EVENT_USB_Device_ConfigurationChanged(void)
 {
-       /* Indicate USB connected and ready */
-       LEDs_SetAllLEDs(LEDMASK_USB_READY);
+       bool ConfigSuccess = true;
 
-       /* Setup audio stream endpoint */
-       if (!(Endpoint_ConfigureEndpoint(AUDIO_STREAM_EPNUM, EP_TYPE_ISOCHRONOUS,
-                                            ENDPOINT_DIR_IN, AUDIO_STREAM_EPSIZE,
-                                        ENDPOINT_BANK_DOUBLE)))
-       {
-               LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
-       }
+       /* Setup Audio Stream Endpoint */
+       ConfigSuccess &= Endpoint_ConfigureEndpoint(AUDIO_STREAM_EPNUM, EP_TYPE_ISOCHRONOUS, ENDPOINT_DIR_IN,
+                                                   AUDIO_STREAM_EPSIZE, ENDPOINT_BANK_DOUBLE);
+
+       /* Indicate endpoint configuration success or failure */
+       LEDs_SetAllLEDs(ConfigSuccess ? LEDMASK_USB_READY : LEDMASK_USB_ERROR);
 }
 
 /** Event handler for the USB_UnhandledControlRequest event. This is used to catch standard and class specific
@@ -135,12 +133,11 @@ void EVENT_USB_Device_UnhandledControlRequest(void)
                        /* Set Interface is not handled by the library, as its function is application-specific */
                        if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_INTERFACE))
                        {
-                               Endpoint_ClearSETUP();
-                               
+                               Endpoint_ClearSETUP();                          
+                               Endpoint_ClearStatusStage();
+
                                /* Check if the host is enabling the audio interface (setting AlternateSetting to 1) */
                                StreamingAudioInterfaceSelected = ((USB_ControlRequest.wValue) != 0);
-                               
-                               Endpoint_ClearStatusStage();
                        }
 
                        break;