X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/3ae9e6042fc1ebc876e32142dde606f7890518b2..039a714ee46268c07928c79b30403f29d4040fe8:/LUFA/Drivers/USB/HighLevel/Template/Template_Endpoint_Control_R.c diff --git a/LUFA/Drivers/USB/HighLevel/Template/Template_Endpoint_Control_R.c b/LUFA/Drivers/USB/HighLevel/Template/Template_Endpoint_Control_R.c index c8bfaeb70..cd11705c2 100644 --- a/LUFA/Drivers/USB/HighLevel/Template/Template_Endpoint_Control_R.c +++ b/LUFA/Drivers/USB/HighLevel/Template/Template_Endpoint_Control_R.c @@ -2,10 +2,10 @@ uint8_t TEMPLATE_FUNC_NAME (void* Buffer, uint16_t Length) { uint8_t* DataStream = ((uint8_t*)Buffer + TEMPLATE_BUFFER_OFFSET(Length)); - + if (!(Length)) Endpoint_ClearOUT(); - + while (Length) { uint8_t USB_DeviceState_LCL = USB_DeviceState; @@ -16,19 +16,20 @@ uint8_t TEMPLATE_FUNC_NAME (void* Buffer, return ENDPOINT_RWCSTREAM_BusSuspended; else if (Endpoint_IsSETUPReceived()) return ENDPOINT_RWCSTREAM_HostAborted; - + if (Endpoint_IsOUTReceived()) { while (Length && Endpoint_BytesInEndpoint()) { TEMPLATE_TRANSFER_BYTE(DataStream); + TEMPLATE_BUFFER_MOVE(DataStream, 1); Length--; } - + Endpoint_ClearOUT(); - } + } } - + while (!(Endpoint_IsINReady())) { uint8_t USB_DeviceState_LCL = USB_DeviceState; @@ -38,11 +39,12 @@ uint8_t TEMPLATE_FUNC_NAME (void* Buffer, else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended) return ENDPOINT_RWCSTREAM_BusSuspended; } - + return ENDPOINT_RWCSTREAM_NoError; } #undef TEMPLATE_BUFFER_OFFSET +#undef TEMPLATE_BUFFER_MOVE #undef TEMPLATE_FUNC_NAME -#undef TEMPLATE_TRANSFER_BYTE \ No newline at end of file +#undef TEMPLATE_TRANSFER_BYTE