Pipe_BoundEndpointNumber() has been renamed to Pipe_GetBoundEndpointAddress(), and now returns the correct endpoint direction as part of the endpoint address.
Add Audio_GetSetEndpointProperty() function to the Host mode Audio class driver.
This commit is contained in:
parent
34164a5550
commit
0bf5064aec
9 changed files with 82 additions and 37 deletions
|
|
@ -137,13 +137,7 @@ bool Pipe_IsEndpointBound(const uint8_t EndpointAddress)
|
|||
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)))
|
||||
if (Pipe_GetBoundEndpointAddress() == EndpointAddress)
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -321,15 +321,16 @@
|
|||
return ((UPSTAX & (1 << CFGOK)) ? true : false);
|
||||
}
|
||||
|
||||
/** Retrieves the endpoint number of the endpoint within the attached device that the currently selected
|
||||
/** Retrieves the endpoint address of the endpoint within the attached device that the currently selected
|
||||
* pipe is bound to.
|
||||
*
|
||||
* \return Endpoint number the currently selected pipe is bound to.
|
||||
* \return Endpoint address the currently selected pipe is bound to.
|
||||
*/
|
||||
static inline uint8_t Pipe_BoundEndpointNumber(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
|
||||
static inline uint8_t Pipe_BoundEndpointNumber(void)
|
||||
static inline uint8_t Pipe_GetBoundEndpointAddress(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
|
||||
static inline uint8_t Pipe_GetBoundEndpointAddress(void)
|
||||
{
|
||||
return ((UPCFG0X >> PEPNUM0) & PIPE_EPNUM_MASK);
|
||||
return (((UPCFG0X >> PEPNUM0) & PIPE_EPNUM_MASK) |
|
||||
((Pipe_GetPipeToken() == PIPE_TOKEN_IN) ? ENDPOINT_DESCRIPTOR_DIR_IN : 0));
|
||||
}
|
||||
|
||||
/** Sets the period between interrupts for an INTERRUPT type pipe to a specified number of milliseconds.
|
||||
|
|
|
|||
|
|
@ -86,13 +86,7 @@ bool Pipe_IsEndpointBound(const uint8_t EndpointAddress)
|
|||
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)))
|
||||
if (Pipe_GetBoundEndpointAddress() == EndpointAddress)
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -332,15 +332,16 @@
|
|||
return (&AVR32_USBB.UPSTA0)[USB_SelectedPipe].cfgok;
|
||||
}
|
||||
|
||||
/** Retrieves the endpoint number of the endpoint within the attached device that the currently selected
|
||||
/** Retrieves the endpoint address of the endpoint within the attached device that the currently selected
|
||||
* pipe is bound to.
|
||||
*
|
||||
* \return Endpoint number the currently selected pipe is bound to.
|
||||
* \return Endpoint address the currently selected pipe is bound to.
|
||||
*/
|
||||
static inline uint8_t Pipe_BoundEndpointNumber(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
|
||||
static inline uint8_t Pipe_BoundEndpointNumber(void)
|
||||
static inline uint8_t Pipe_GetBoundEndpointAddress(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
|
||||
static inline uint8_t Pipe_GetBoundEndpointAddress(void)
|
||||
{
|
||||
return (&AVR32_USBB.UPCFG0)[USB_SelectedPipe].pepnum;
|
||||
return ((&AVR32_USBB.UPCFG0)[USB_SelectedPipe].pepnum |
|
||||
((Pipe_GetPipeToken() == PIPE_TOKEN_IN) ? ENDPOINT_DESCRIPTOR_DIR_IN : 0));
|
||||
}
|
||||
|
||||
/** Sets the period between interrupts for an INTERRUPT type pipe to a specified number of milliseconds.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue