aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA
diff options
context:
space:
mode:
Diffstat (limited to 'LUFA')
-rw-r--r--LUFA/Drivers/USB/LowLevel/Pipe.c10
-rw-r--r--LUFA/Drivers/USB/LowLevel/Pipe.h19
-rw-r--r--LUFA/ManPages/ChangeLog.txt1
-rw-r--r--LUFA/ManPages/FutureChanges.txt1
4 files changed, 30 insertions, 1 deletions
diff --git a/LUFA/Drivers/USB/LowLevel/Pipe.c b/LUFA/Drivers/USB/LowLevel/Pipe.c
index 189aaa63b..35ba480cd 100644
--- a/LUFA/Drivers/USB/LowLevel/Pipe.c
+++ b/LUFA/Drivers/USB/LowLevel/Pipe.c
@@ -113,6 +113,8 @@ uint8_t Pipe_Write_Stream_LE(const void* Data, uint16_t Length
uint8_t* DataStream = (uint8_t*)Data;
uint8_t ErrorCode;
+ Pipe_SetToken(PIPE_TOKEN_OUT);
+
if ((ErrorCode = Pipe_WaitUntilReady()))
return ErrorCode;
@@ -149,6 +151,8 @@ uint8_t Pipe_Write_Stream_BE(const void* Data, uint16_t Length
uint8_t* DataStream = (uint8_t*)(Data + Length - 1);
uint8_t ErrorCode;
+ Pipe_SetToken(PIPE_TOKEN_OUT);
+
if ((ErrorCode = Pipe_WaitUntilReady()))
return ErrorCode;
@@ -184,6 +188,8 @@ uint8_t Pipe_Discard_Stream(uint16_t Length
{
uint8_t ErrorCode;
+ Pipe_SetToken(PIPE_TOKEN_IN);
+
if ((ErrorCode = Pipe_WaitUntilReady()))
return ErrorCode;
@@ -220,6 +226,8 @@ uint8_t Pipe_Read_Stream_LE(void* Buffer, uint16_t Length
uint8_t* DataStream = (uint8_t*)Buffer;
uint8_t ErrorCode;
+ Pipe_SetToken(PIPE_TOKEN_IN);
+
if ((ErrorCode = Pipe_WaitUntilReady()))
return ErrorCode;
@@ -256,6 +264,8 @@ uint8_t Pipe_Read_Stream_BE(void* Buffer, uint16_t Length
uint8_t* DataStream = (uint8_t*)(Buffer + Length - 1);
uint8_t ErrorCode;
+ Pipe_SetToken(PIPE_TOKEN_IN);
+
if ((ErrorCode = Pipe_WaitUntilReady()))
return ErrorCode;
diff --git a/LUFA/Drivers/USB/LowLevel/Pipe.h b/LUFA/Drivers/USB/LowLevel/Pipe.h
index 82d9b69d4..30f2d387c 100644
--- a/LUFA/Drivers/USB/LowLevel/Pipe.h
+++ b/LUFA/Drivers/USB/LowLevel/Pipe.h
@@ -730,7 +730,9 @@
*
* The banking mode may be either \ref PIPE_BANK_SINGLE or \ref PIPE_BANK_DOUBLE.
*
- * A newly configured pipe is frozen by default, and must be unfrozen before use via the \ref Pipe_Unfreeze() macro.
+ * A newly configured pipe is frozen by default, and must be unfrozen before use via the \ref Pipe_Unfreeze()
+ * before being used. Pipes should be kept frozen unless waiting for data from a device while in IN mode, or
+ * sending data to the device in OUT mode.
*
* \note The default control pipe does not have to be manually configured, as it is automatically
* configured by the library internally.
@@ -762,6 +764,9 @@
* If the token NO_STREAM_CALLBACKS is passed via the -D option to the compiler, stream callbacks are
* disabled and this function has the Callback parameter omitted.
*
+ * The pipe token is set automatically, thus this can be used on bi-directional pipes directly without
+ * having to explicitly change the data direction with a call to \ref Pipe_SetPipeToken().
+ *
* \ingroup Group_PipeRW
*
* \param Buffer Pointer to the source data buffer to read from.
@@ -786,6 +791,9 @@
* If the token NO_STREAM_CALLBACKS is passed via the -D option to the compiler, stream callbacks are
* disabled and this function has the Callback parameter omitted.
*
+ * The pipe token is set automatically, thus this can be used on bi-directional pipes directly without
+ * having to explicitly change the data direction with a call to \ref Pipe_SetPipeToken().
+ *
* \ingroup Group_PipeRW
*
* \param Buffer Pointer to the source data buffer to read from.
@@ -810,6 +818,9 @@
* If the token NO_STREAM_CALLBACKS is passed via the -D option to the compiler, stream callbacks are
* disabled and this function has the Callback parameter omitted.
*
+ * The pipe token is set automatically, thus this can be used on bi-directional pipes directly without
+ * having to explicitly change the data direction with a call to \ref Pipe_SetPipeToken().
+ *
* \ingroup Group_PipeRW
*
* \param Length Number of bytes to send via the currently selected pipe.
@@ -833,6 +844,9 @@
* If the token NO_STREAM_CALLBACKS is passed via the -D option to the compiler, stream callbacks are
* disabled and this function has the Callback parameter omitted.
*
+ * The pipe token is set automatically, thus this can be used on bi-directional pipes directly without
+ * having to explicitly change the data direction with a call to \ref Pipe_SetPipeToken().
+ *
* \ingroup Group_PipeRW
*
* \param Buffer Pointer to the source data buffer to write to.
@@ -857,6 +871,9 @@
* If the token NO_STREAM_CALLBACKS is passed via the -D option to the compiler, stream callbacks are
* disabled and this function has the Callback parameter omitted.
*
+ * The pipe token is set automatically, thus this can be used on bi-directional pipes directly without
+ * having to explicitly change the data direction with a call to \ref Pipe_SetPipeToken().
+ *
* \ingroup Group_PipeRW
*
* \param Buffer Pointer to the source data buffer to write to.
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index 81fb51555..b80fa4d6f 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -31,6 +31,7 @@
* - Added new USE_INTERNAL_SERIAL define for using the unique serial numbers in some AVR models as the USB device's serial number,
* added NO_INTERNAL_SERIAL compile time option to turn off new serial number reading code
* - Fixed ADC driver for the ATMEGA32U4 and ATMEGA16U4 (thanks to Opendous Inc.)
+ * - Pipe stream functions now automatically set the correct pipe token, so that bidirectional pipes can be used
*
*
* \section Sec_ChangeLog090605 Version 090605
diff --git a/LUFA/ManPages/FutureChanges.txt b/LUFA/ManPages/FutureChanges.txt
index 9704131b1..7c6e4ee32 100644
--- a/LUFA/ManPages/FutureChanges.txt
+++ b/LUFA/ManPages/FutureChanges.txt
@@ -25,4 +25,5 @@
* - Debug mode for pipe/endpoint calls
* - Add hub support to match Atmel's stack
* - Update Host mode Class Driver demo .txt files
+ * - Stream reads - return number of bytes not read?
*/