USB Audio internals

nRF5 SDK v15.0.0

nRF52840 only: USB Audio class internals. More...

Data Structures

struct app_usbd_audio_subclass_desc_t
Audio subclass descriptor. More...
struct app_usbd_audio_inst_t
Audio class part of class instance data. More...
struct app_usbd_audio_req_t
Audio class specific request handled via control endpoint. More...
struct app_usbd_audio_ctx_t
Audio class context. More...

Macros

#define APP_USBD_AUDIO_CONFIG (iface_control, iface_stream)
Audio class configuration macro. More...
#define APP_USBD_AUDIO_CONFIG_IN (iface_control, iface_stream_in)   ((iface_control), (iface_stream_in, NRF_DRV_USBD_EPIN8 ))
Only IN audio stream configuration. More...
#define APP_USBD_AUDIO_CONFIG_OUT (iface_control, iface_stream_out)   ((iface_control), (iface_stream_out, NRF_DRV_USBD_EPOUT8 ))
Only OUT audio stream configuration. More...
#define APP_USBD_AUDIO_INSTANCE_SPECIFIC_DEC app_usbd_audio_inst_t inst;
Specific class constant data for audio class. More...
#define APP_USBD_AUDIO_INST_CONFIG (user_event_handler,format_descriptor,input_descriptor,output_descriptor,feature_descriptor,dlay,frmat,ep_siz,type_str)
Configures audio class instance. More...
#define APP_USBD_AUDIO_DATA_SPECIFIC_DEC app_usbd_audio_ctx_t ctx;
Specific class data for audio class. More...
#define APP_USBD_AUDIO_DSC_CONFIG (interface_number,...)
Audio class descriptors config macro. More...
#define APP_USBD_AUDIO_GLOBAL_DEF_INTERNAL (instance_name,interfaces_configs,user_ev_handler,format_descriptor,input_descriptor,output_descriptor,feature_descriptor,delay,format,ep_size,type_str)
Global definition of app_usbd_audio_t class. More...

Typedefs

typedef void(* app_usbd_audio_user_ev_handler_t )( app_usbd_class_inst_t const *p_inst, enum app_usbd_audio_user_event_e event)
User event handler. More...

Functions

APP_USBD_CLASS_FORWARD (app_usbd_audio)
Forward declaration of type defined by APP_USBD_CLASS_TYPEDEF in audio class.

Variables

const app_usbd_class_methods_t app_usbd_audio_class_methods
Public audio class interface.

Detailed Description

nRF52840 only: USB Audio class internals.

Macro Definition Documentation

#define APP_USBD_AUDIO_CONFIG ( iface_control,
iface_stream
)
Value:
((iface_control), \
(iface_stream, 0))

Audio class configuration macro.

Used by APP_USBD_AUDIO_GLOBAL_DEF

Parameters
iface_control Interface number of audio control
iface_stream Interface number of audio stream
#define APP_USBD_AUDIO_CONFIG_IN ( iface_control,
iface_stream_in
) ((iface_control), (iface_stream_in, NRF_DRV_USBD_EPIN8 ))

Only IN audio stream configuration.

Parameters
iface_control Interface number of audio control
iface_stream_in Interface number of audio stream on IN endpoint
#define APP_USBD_AUDIO_CONFIG_OUT ( iface_control,
iface_stream_out
) ((iface_control), (iface_stream_out, NRF_DRV_USBD_EPOUT8 ))

Only OUT audio stream configuration.

Parameters
iface_control Interface number of audio control
iface_stream_out Interface number of audio stream on OUT endpoint
#define APP_USBD_AUDIO_DATA_SPECIFIC_DEC app_usbd_audio_ctx_t ctx;

Specific class data for audio class.

app_usbd_audio_ctx_t

#define APP_USBD_AUDIO_DSC_CONFIG ( interface_number,
...
)
Value:
{ \
APP_USBD_AUDIO_INTERFACE_DSC(interface_number, \
0, \
0, \
}

Audio class descriptors config macro.

Parameters
interface_number Interface number
... Extracted endpoint list
#define APP_USBD_AUDIO_GLOBAL_DEF_INTERNAL ( instance_name,
interfaces_configs,
user_ev_handler,
format_descriptor,
input_descriptor,
output_descriptor,
feature_descriptor,
delay,
format,
ep_size,
type_str
)
Value:
instance_name, \
app_usbd_audio, \
interfaces_configs, \
( APP_USBD_AUDIO_INST_CONFIG (user_ev_handler, \
format_descriptor, \
input_descriptor, \
output_descriptor, \
feature_descriptor, \
delay, \
format, \
ep_size, \
type_str)) \
)

Global definition of app_usbd_audio_t class.

#define APP_USBD_AUDIO_INST_CONFIG ( user_event_handler,
format_descriptor,
input_descriptor,
output_descriptor,
feature_descriptor,
dlay,
frmat,
ep_siz,
type_str
)
Value:
.inst = { \
.user_ev_handler = user_event_handler, \
.p_format_dsc = format_descriptor, \
.p_input_dsc = input_descriptor, \
.p_output_dsc = output_descriptor, \
.p_feature_dsc = feature_descriptor, \
.delay = dlay, \
.format = frmat, \
.ep_size = ep_siz, \
.type_streaming = type_str \
}

Configures audio class instance.

Parameters
user_event_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
dlay Streaming delay
frmat FormatTag ( app_usbd_audio_as_iface_format_tag_t )
ep_siz Endpoint size
type_str Streaming type MIDISTREAMING/AUDIOSTREAMING
#define APP_USBD_AUDIO_INSTANCE_SPECIFIC_DEC app_usbd_audio_inst_t inst;

Specific class constant data for audio class.

app_usbd_audio_inst_t

Typedef Documentation

typedef void(* app_usbd_audio_user_ev_handler_t)( app_usbd_class_inst_t const *p_inst, enum app_usbd_audio_user_event_e event)

User event handler.

Parameters
[in] p_inst Class instance
[in] event User event

Enumeration Type Documentation

Audio class request target.

Enumerator
APP_USBD_AUDIO_CLASS_REQ_IN

Audio class request IN

APP_USBD_AUDIO_CLASS_REQ_OUT

Audio class request OUT

APP_USBD_AUDIO_EP_REQ_IN

Audio class endpoint request IN

APP_USBD_AUDIO_EP_REQ_OUT

Audio class endpoint request OUT