}\r
}\r
\r
+bool Pipe_IsEndpointBound(const uint8_t EndpointAddress)\r
+{\r
+ uint8_t PrevPipeNumber = Pipe_GetCurrentPipe();\r
+\r
+ for (uint8_t PNum = 0; PNum < PIPE_TOTAL_PIPES; PNum++)\r
+ {\r
+ Pipe_SelectPipe(PNum);\r
+ \r
+ if (Pipe_IsConfigured() && (Pipe_BoundEndpointNumber() == EndpointAddress))\r
+ return true;\r
+ }\r
+ \r
+ Pipe_SelectPipe(PrevPipeNumber);\r
+ return false;\r
+}\r
+\r
uint8_t Pipe_WaitUntilReady(void)\r
{\r
#if (USB_STREAM_TIMEOUT_MS < 0xFF)\r
#else\r
uint16_t TimeoutMSRem = USB_STREAM_TIMEOUT_MS;\r
#endif\r
-\r
+ \r
for (;;)\r
{\r
if (Pipe_GetPipeToken() == PIPE_TOKEN_IN)\r