X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/071e02c6b6b4837fa9cf0b6d4c749994e02638d7..bea72a8412f99b294c00341fa16a8308bcc66f15:/Demos/Device/Incomplete/Sideshow/Sideshow.c?ds=sidebyside diff --git a/Demos/Device/Incomplete/Sideshow/Sideshow.c b/Demos/Device/Incomplete/Sideshow/Sideshow.c index 3e9778e29..8b2842bdf 100644 --- a/Demos/Device/Incomplete/Sideshow/Sideshow.c +++ b/Demos/Device/Incomplete/Sideshow/Sideshow.c @@ -95,45 +95,37 @@ void EVENT_USB_Device_Disconnect(void) void EVENT_USB_Device_ConfigurationChanged(void) { - LEDs_SetAllLEDs(LEDMASK_USB_READY); + bool ConfigSuccess = true; - /* Setup Sideshow In and Out Endpoints */ - if (!(Endpoint_ConfigureEndpoint(SIDESHOW_IN_EPNUM, EP_TYPE_BULK, - ENDPOINT_DIR_IN, SIDESHOW_IO_EPSIZE, - ENDPOINT_BANK_SINGLE))) - { - LEDs_SetAllLEDs(LEDMASK_USB_ERROR); - } + /* Setup Sideshow Data Endpoints */ + ConfigSuccess &= Endpoint_ConfigureEndpoint(SIDESHOW_IN_EPNUM, EP_TYPE_BULK, ENDPOINT_DIR_IN, + SIDESHOW_IO_EPSIZE, ENDPOINT_BANK_SINGLE); + ConfigSuccess &= Endpoint_ConfigureEndpoint(SIDESHOW_OUT_EPNUM, EP_TYPE_BULK, ENDPOINT_DIR_OUT, + SIDESHOW_IO_EPSIZE, ENDPOINT_BANK_SINGLE); - if (!(Endpoint_ConfigureEndpoint(SIDESHOW_OUT_EPNUM, EP_TYPE_BULK, - ENDPOINT_DIR_OUT, SIDESHOW_IO_EPSIZE, - ENDPOINT_BANK_SINGLE))) - { - LEDs_SetAllLEDs(LEDMASK_USB_ERROR); - } + /* Indicate endpoint configuration success or failure */ + LEDs_SetAllLEDs(ConfigSuccess ? LEDMASK_USB_READY : LEDMASK_USB_ERROR); } void EVENT_USB_Device_UnhandledControlRequest(void) { - /* Process UFI specific control requests */ switch (USB_ControlRequest.bRequest) { case REQ_GetOSFeatureDescriptor: if (USB_ControlRequest.bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_VENDOR | REQREC_DEVICE)) { - void* DescriptorPointer; - uint16_t DescriptorSize; - - if (!(USB_GetOSFeatureDescriptor(USB_ControlRequest.wValue, USB_ControlRequest.wIndex, - &DescriptorPointer, &DescriptorSize))) - { - return; - } + const void* DescriptorPointer; + uint16_t DescriptorSize = USB_GetOSFeatureDescriptor(USB_ControlRequest.wValue, + USB_ControlRequest.wIndex, + &DescriptorPointer); + + if (DescriptorSize == NO_DESCRIPTOR) + return; Endpoint_ClearSETUP(); Endpoint_Write_Control_PStream_LE(DescriptorPointer, DescriptorSize); - Endpoint_ClearOUT(); + Endpoint_ClearOUT(); } break;