bool Pipe_IsEndpointBound(const uint8_t EndpointAddress) { uint8_t PrevPipeNumber = Pipe_GetCurrentPipe(); for (uint8_t PNum = 0; PNum < PIPE_TOTAL_PIPES; PNum++) { Pipe_SelectPipe(PNum); if (Pipe_IsConfigured() && (Pipe_BoundEndpointNumber() == (EndpointAddress & PIPE_EPNUM_MASK))) return true; } Pipe_SelectPipe(PrevPipeNumber); return false; }
bool Pipe_IsEndpointBound(const uint8_t EndpointAddress) { uint8_t PrevPipeNumber = Pipe_GetCurrentPipe(); for (uint8_t PNum = 0; PNum < PIPE_TOTAL_PIPES; PNum++) { Pipe_SelectPipe(PNum); if (!(Pipe_IsConfigured())) continue; uint8_t PipeToken = Pipe_GetPipeToken(); bool PipeTokenCorrect = true; if (PipeToken != PIPE_TOKEN_SETUP) PipeTokenCorrect = (PipeToken == ((EndpointAddress & PIPE_EPDIR_MASK) ? PIPE_TOKEN_IN : PIPE_TOKEN_OUT)); if (PipeTokenCorrect && (Pipe_BoundEndpointNumber() == (EndpointAddress & PIPE_EPNUM_MASK))) return true; } Pipe_SelectPipe(PrevPipeNumber); return false; }