diff options
author | Dean Camera <dean@fourwalledcubicle.com> | 2009-06-23 07:55:18 +0000 |
---|---|---|
committer | Dean Camera <dean@fourwalledcubicle.com> | 2009-06-23 07:55:18 +0000 |
commit | 7f81803aaa312d589f79a77d1426150dcceb29f7 (patch) | |
tree | d23f2d3a2e56dfc805bedaf6b17172e4b48f8626 /LUFA/Drivers | |
parent | 189d0c7e669b6a3d07ed35c1eaa0bfc8cbc7a729 (diff) | |
download | lufa-7f81803aaa312d589f79a77d1426150dcceb29f7.tar.gz lufa-7f81803aaa312d589f79a77d1426150dcceb29f7.tar.bz2 lufa-7f81803aaa312d589f79a77d1426150dcceb29f7.zip |
Fixed CDCHost demo unfreezing IN pipes during configuration, rather than during use.
Changed Pipe stream functions to automatically set the pipe token, allowing them to be used on bidirectional pipes without having to explicitly call Pipe_SetPipeToken() beforehand.
Diffstat (limited to 'LUFA/Drivers')
-rw-r--r-- | LUFA/Drivers/USB/LowLevel/Pipe.c | 10 | ||||
-rw-r--r-- | LUFA/Drivers/USB/LowLevel/Pipe.h | 19 |
2 files changed, 28 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.
|