Added new EEPROM and FLASH buffer versions of the Endpoint and Pipe stream functions...
[pub/lufa.git] / LUFA / Drivers / USB / LowLevel / Template / Template_Endpoint_Control_R.c
diff --git a/LUFA/Drivers/USB/LowLevel/Template/Template_Endpoint_Control_R.c b/LUFA/Drivers/USB/LowLevel/Template/Template_Endpoint_Control_R.c
new file mode 100644 (file)
index 0000000..d66edaf
--- /dev/null
@@ -0,0 +1,27 @@
+uint8_t TEMPLATE_FUNC_NAME (void* Buffer, uint16_t Length)\r
+{\r
+       uint8_t* DataStream = (uint8_t*)(Buffer + TEMPLATE_BUFFER_OFFSET(Length));\r
+       \r
+       while (Length)\r
+       {\r
+               if (Endpoint_IsOUTReceived())\r
+               {\r
+                       while (Length && Endpoint_BytesInEndpoint())\r
+                       {\r
+                               TEMPLATE_TRANSFER_BYTE(DataStream);\r
+                               Length--;\r
+                       }\r
+                       \r
+                       Endpoint_ClearOUT();\r
+               }\r
+       }\r
+       \r
+       while (!(Endpoint_IsINReady()));\r
+       \r
+       return ENDPOINT_RWCSTREAM_NoError;\r
+}\r
+\r
+\r
+#undef TEMPLATE_BUFFER_OFFSET\r
+#undef TEMPLATE_FUNC_NAME\r
+#undef TEMPLATE_TRANSFER_BYTE
\ No newline at end of file