nRF52840 only: Module with types, definitions, and API used by USB Audio class. More...
Modules |
|
| USB Audio descriptors | |
|
nRF52840 only:
Descriptors used in the USB Audio class.
|
|
| USB Audio internals | |
|
nRF52840 only:
USB Audio class internals.
|
|
| USB Audio types | |
|
nRF52840 only:
Type definitions for the USB Audio class.
|
|
| USB AUDIO class configuration | |
Data Structures |
|
| struct | app_usbd_audio_t |
|
Audio class instance type.
More...
|
|
Macros |
|
| #define | APP_USBD_AUDIO_GLOBAL_DEF (instance_name,interfaces_configs,user_ev_handler,format_descriptor,input_descriptor,output_descriptor,feature_descriptor,delay,format,ep_size,type_str,terminal_link) |
|
Global definition of
app_usbd_audio_t
class instance.
More...
|
|
| #define | APP_USBD_AUDIO_FORMAT_DESCRIPTOR (name,...) |
|
Initializer of Audio Format descriptor.
More...
|
|
| #define | APP_USBD_AUDIO_INPUT_DESCRIPTOR (name,...) |
|
Initializer of Audio Input descriptor.
More...
|
|
| #define | APP_USBD_AUDIO_OUTPUT_DESCRIPTOR (name,...) |
|
Initializer of Audio Output descriptor.
More...
|
|
| #define | APP_USBD_AUDIO_FEATURE_DESCRIPTOR (name,...) |
|
Initializer of Feture Output descriptor.
More...
|
|
Typedefs |
|
|
typedef enum
app_usbd_audio_user_event_e |
app_usbd_audio_user_event_t |
|
Events passed to user event handler.
More...
|
|
Enumerations |
|
| enum |
app_usbd_audio_user_event_e
{
APP_USBD_AUDIO_USER_EVT_CLASS_REQ , APP_USBD_AUDIO_USER_EVT_RX_DONE , APP_USBD_AUDIO_USER_EVT_TX_DONE } |
|
Events passed to user event handler.
More...
|
|
Functions |
|
|
static
app_usbd_class_inst_t
const * |
app_usbd_audio_class_inst_get ( app_usbd_audio_t const *p_audio) |
| static app_usbd_audio_req_t * | app_usbd_audio_class_request_get ( app_usbd_audio_t const *p_audio) |
|
Helper function to get audio specific request from audio class.
More...
|
|
| static app_usbd_audio_t const * | app_usbd_audio_class_get ( app_usbd_class_inst_t const *p_inst) |
|
Helper function to get audio from base class instance.
More...
|
|
| size_t | app_usbd_audio_class_rx_size_get ( app_usbd_class_inst_t const *p_inst) |
|
Get the size of last received transfer.
More...
|
|
| ret_code_t | app_usbd_audio_class_rx_start ( app_usbd_class_inst_t const *p_inst, void *p_buff, size_t size) |
|
Start audio data copying from the endpoint buffer.
More...
|
|
| ret_code_t | app_usbd_audio_class_tx_start ( app_usbd_class_inst_t const *p_inst, const void *p_buff, size_t size) |
|
Start copying audio data to the endpoint buffer.
More...
|
|
| ret_code_t | app_usbd_audio_sof_interrupt_register ( app_usbd_class_inst_t const *p_inst, app_usbd_sof_interrupt_handler_t handler) |
|
Register audio instance as the one that requires SOF events in interrupt.
More...
|
|
Detailed Description
nRF52840 only: Module with types, definitions, and API used by USB Audio class.
Reference specifications:
- "Universal Serial Bus Device Class Definition for Audio Devices" Release 1.0, March 18, 1998.
- "Universal Serial Bus Device Class Definition for Audio Data Formats" Release 1.0, March 18, 1998.
- "Universal Serial Bus Device Class Definition for Terminal Types" Release 1.0, March 18, 1998.
Macro Definition Documentation
| #define APP_USBD_AUDIO_FEATURE_DESCRIPTOR | ( | name, | |
| ... | |||
| ) |
Initializer of Feture Output descriptor.
- Parameters
-
name Feture descriptor name. ... Feture descriptor data.
| #define APP_USBD_AUDIO_FORMAT_DESCRIPTOR | ( | name, | |
| ... | |||
| ) |
Initializer of Audio Format descriptor.
- Parameters
-
name Format descriptor name. ... Format descriptor data.
| #define APP_USBD_AUDIO_GLOBAL_DEF | ( | instance_name, | |
| interfaces_configs, | |||
| user_ev_handler, | |||
| format_descriptor, | |||
| input_descriptor, | |||
| output_descriptor, | |||
| feature_descriptor, | |||
| delay, | |||
| format, | |||
| ep_size, | |||
| type_str, | |||
| terminal_link | |||
| ) |
Global definition of app_usbd_audio_t class instance.
- Parameters
-
instance_name Name of global instance. interfaces_configs Interfaces configurations. user_ev_handler User event handler. format_descriptor Audio class Format descriptor. input_descriptor Audio class Input Terminal descriptor. output_descriptor Audio class Output Terminal descriptor. feature_descriptor Audio class Feature Unit descriptor. delay Streaming delay. format FormatTag ( app_usbd_audio_as_iface_format_tag_t ). ep_size Endpoint size. type_str Streaming type MIDISTREAMING/AUDIOSTREAMING. terminal_link Terminal link in AS Interface Descriptor.
- Note
- This macro is just simplified version of APP_USBD_AUDIO_GLOBAL_DEF_INTERNAL
| #define APP_USBD_AUDIO_INPUT_DESCRIPTOR | ( | name, | |
| ... | |||
| ) |
Initializer of Audio Input descriptor.
- Parameters
-
name Input descriptor name. ... Input descriptor data.
| #define APP_USBD_AUDIO_OUTPUT_DESCRIPTOR | ( | name, | |
| ... | |||
| ) |
Initializer of Audio Output descriptor.
- Parameters
-
name Output descriptor name. ... Output descriptor data.
Typedef Documentation
| typedef enum app_usbd_audio_user_event_e app_usbd_audio_user_event_t |
Events passed to user event handler.
- Note
- Example prototype of user event handler:
Enumeration Type Documentation
Events passed to user event handler.
- Note
- Example prototype of user event handler:
Function Documentation
|
inline static |
Helper function to get audio from base class instance.
- Parameters
-
[in] p_inst Base class instance.
- Returns
- Audio class handle.
|
inline static |
@brief Helper function to get class instance from Audio class.
- Parameters
-
[in] p_audio Audio class instance (declared by APP_USBD_AUDIO_GLOBAL_DEF ).
- Returns
- Base class instance.
|
inline static |
Helper function to get audio specific request from audio class.
- Parameters
-
[in] p_audio Audio class instance (declared by APP_USBD_AUDIO_GLOBAL_DEF ).
- Returns
- Audio class specific request.
| size_t app_usbd_audio_class_rx_size_get | ( | app_usbd_class_inst_t const * | p_inst | ) |
Get the size of last received transfer.
- Note
- Call this function in reaction to a SOF event to check if there is any data to process.
- Parameters
-
p_inst Base class instance.
- Returns
- Number of bytes received in the last transmission.
| ret_code_t app_usbd_audio_class_rx_start | ( | app_usbd_class_inst_t const * | p_inst , |
| void * | p_buff , | ||
| size_t | size | ||
| ) |
Start audio data copying from the endpoint buffer.
Function to be used to copy data from an audio OUT endpoint to a given buffer. When it finishes, an APP_USBD_AUDIO_USER_EVT_RX_DONE event is generated.
- Parameters
-
p_inst Base class instance. p_buff Target buffer. size Size of the requested data.
- Returns
- Result of the endpoint transmission start.
- See Also
- app_usbd_audio_class_rx_size_get
- Note
- This function should be called in reaction to a SOF event. Isochronous endpoints are double buffered and they are automatically switched at every SOF.
| ret_code_t app_usbd_audio_class_tx_start | ( | app_usbd_class_inst_t const * | p_inst , |
| const void * | p_buff , | ||
| size_t | size | ||
| ) |
Start copying audio data to the endpoint buffer.
Function to be used to copy data to an audio IN endpoint from a given buffer. When it finishes, an APP_USBD_AUDIO_USER_EVT_TX_DONE event is generated.
- Parameters
-
p_inst Base class instance. p_buff Source buffer. size Size of the data to be sent.
- Returns
- Result of the endpoint transsmision start.
- Note
- This function should be called in reaction to a SOF event. Isochronous endpoints are double buffered and they are automatically switched at every SOF.
| ret_code_t app_usbd_audio_sof_interrupt_register | ( | app_usbd_class_inst_t const * | p_inst , |
| app_usbd_sof_interrupt_handler_t | handler | ||
| ) |
Register audio instance as the one that requires SOF events in interrupt.
This function should be called before appending the instance.
- Parameters
-
p_inst Audio instance that requires SOF event. handler Handler to SOF event
- Return values
-
NRF_SUCCESS Instance linked into SOF processing list.