1 uint8_t TEMPLATE_FUNC_NAME (void* Buffer
, uint16_t Length
)
3 uint8_t* DataStream
= ((uint8_t*)Buffer
+ TEMPLATE_BUFFER_OFFSET(Length
));
10 if (Endpoint_IsSETUPReceived())
11 return ENDPOINT_RWCSTREAM_HostAborted
;
13 if (USB_DeviceState
== DEVICE_STATE_Unattached
)
14 return ENDPOINT_RWCSTREAM_DeviceDisconnected
;
15 else if (USB_DeviceState
== DEVICE_STATE_Suspended
)
16 return ENDPOINT_RWCSTREAM_BusSuspended
;
18 if (Endpoint_IsOUTReceived())
20 while (Length
&& Endpoint_BytesInEndpoint())
22 TEMPLATE_TRANSFER_BYTE(DataStream
);
30 while (!(Endpoint_IsINReady()))
32 if (USB_DeviceState
== DEVICE_STATE_Unattached
)
33 return ENDPOINT_RWCSTREAM_DeviceDisconnected
;
34 else if (USB_DeviceState
== DEVICE_STATE_Suspended
)
35 return ENDPOINT_RWCSTREAM_BusSuspended
;
38 return ENDPOINT_RWCSTREAM_NoError
;
42 #undef TEMPLATE_BUFFER_OFFSET
43 #undef TEMPLATE_FUNC_NAME
44 #undef TEMPLATE_TRANSFER_BYTE