Sound Open Firmware
Loading...
Searching...
No Matches

Audio component operations table. More...

#include <src/include/sof/audio/component.h>

Collaboration diagram for comp_ops:

Data Fields

struct comp_dev *(* create )(const struct comp_driver *drv, const struct comp_ipc_config *ipc_config, const void *spec)
 Creates a new component device.
 
void(* free )(struct comp_dev *dev)
 Called to delete the specified component device.
 
int(* params )(struct comp_dev *dev, struct sof_ipc_stream_params *params)
 Sets component audio stream parameters.
 
int(* dai_get_hw_params )(struct comp_dev *dev, struct sof_ipc_stream_params *params, int dir)
 Fetches hardware stream parameters.
 
int(* dai_config )(struct dai_data *dd, struct comp_dev *dev, struct ipc_config_dai *dai_config, const void *dai_spec_config)
 Configures attached DAI.
 
int(* cmd )(struct comp_dev *dev, int cmd, void *data, int max_data_size)
 Used to pass standard and bespoke commands (with optional data).
 
int(* trigger )(struct comp_dev *dev, int cmd)
 Trigger, atomic - used to start/stop/pause stream operations.
 
int(* prepare )(struct comp_dev *dev)
 Prepares component after params are set.
 
int(* reset )(struct comp_dev *dev)
 Resets component.
 
int(* copy )(struct comp_dev *dev)
 Copy and process stream data from source to sink buffers.
 
int(* position )(struct comp_dev *dev, struct sof_ipc_stream_posn *posn)
 Retrieves component rendering position.
 
int(* get_attribute )(struct comp_dev *dev, uint32_t type, void *value)
 Gets attribute in component.
 
int(* set_attribute )(struct comp_dev *dev, uint32_t type, void *value)
 Sets attribute in component.
 
int(* dai_ts_config )(struct comp_dev *dev)
 Configures timestamping in attached DAI.
 
int(* dai_ts_start )(struct comp_dev *dev)
 Starts timestamping.
 
int(* dai_ts_stop )(struct comp_dev *dev)
 Stops timestamping.
 
int(* dai_ts_get )(struct comp_dev *dev, struct timestamp_data *tsd)
 Gets timestamp.
 
int(* bind )(struct comp_dev *dev, const struct bind_info *bind_data)
 Bind, atomic - used to notify component of bind event.
 
int(* unbind )(struct comp_dev *dev, const struct bind_info *unbind_data)
 Unbind, atomic - used to notify component of unbind event.
 
int(* get_large_config )(struct comp_dev *dev, uint32_t param_id, bool first_block, bool last_block, uint32_t *data_offset, char *data)
 Gets large config in component.
 
int(* set_large_config )(struct comp_dev *dev, uint32_t param_id, bool first_block, bool last_block, uint32_t data_offset, const char *data)
 Set large config in component.
 
uint64_t(* get_total_data_processed )(struct comp_dev *dev, uint32_t stream_no, bool input)
 Returns total data processed in number of bytes.
 

Detailed Description

Audio component operations table.

All component operations must return 0 for success, negative values for errors and 1 to stop the pipeline walk operation unless specified otherwise in the operation documentation.

Field Documentation

◆ bind

int(* comp_ops::bind) (struct comp_dev *dev, const struct bind_info *bind_data)

Bind, atomic - used to notify component of bind event.

Parameters
[in,out]devComponent device.
[in]bind_dataBind info.
Returns
0 on success, negative error code on failure.

◆ cmd

int(* comp_ops::cmd) (struct comp_dev *dev, int cmd, void *data, int max_data_size)

Used to pass standard and bespoke commands (with optional data).

Parameters
[in,out]devComponent device.
[in]cmdCommand.
[in,out]dataCommand data.
[in]max_data_sizeMax size of returned data acceptable by caller for 'get' commands.
Returns
0 on success, negative error code on failure.

◆ copy

int(* comp_ops::copy) (struct comp_dev *dev)

Copy and process stream data from source to sink buffers.

Parameters
[in,out]devComponent device.
Returns
Number of copied frames, or negative error code on failure.

◆ create

struct comp_dev *(* comp_ops::create) (const struct comp_driver *drv, const struct comp_ipc_config *ipc_config, const void *spec)

Creates a new component device.

Parameters
[in]drvParent component driver.
[in]ipc_configComponent parameters.
[in]specPointer to initialization data.
Returns
Pointer to the new component device, or NULL on failure.

◆ dai_config

int(* comp_ops::dai_config) (struct dai_data *dd, struct comp_dev *dev, struct ipc_config_dai *dai_config, const void *dai_spec_config)

Configures attached DAI.

Parameters
[in,out]ddDAI data context.
[in,out]devComponent device.
[in]dai_configDAI configuration.
[in]dai_spec_configDAI specific configuration data.
Returns
0 on success, negative error code on failure.

◆ dai_get_hw_params

int(* comp_ops::dai_get_hw_params) (struct comp_dev *dev, struct sof_ipc_stream_params *params, int dir)

Fetches hardware stream parameters.

Parameters
[in]devComponent device.
[out]paramsReceives copy of stream parameters retrieved from DAI HW settings.
[in]dirStream direction (enum sof_ipc_stream_direction).
Returns
0 on success, negative error code on failure.

◆ dai_ts_config

int(* comp_ops::dai_ts_config) (struct comp_dev *dev)

Configures timestamping in attached DAI.

Parameters
[in,out]devComponent device.
Returns
0 on success, negative error code on failure.

◆ dai_ts_get

int(* comp_ops::dai_ts_get) (struct comp_dev *dev, struct timestamp_data *tsd)

Gets timestamp.

Parameters
[in]devComponent device.
[out]tsdReceives timestamp data.
Returns
0 on success, negative error code on failure.

◆ dai_ts_start

int(* comp_ops::dai_ts_start) (struct comp_dev *dev)

Starts timestamping.

Parameters
[in,out]devComponent device.
Returns
0 on success, negative error code on failure.

◆ dai_ts_stop

int(* comp_ops::dai_ts_stop) (struct comp_dev *dev)

Stops timestamping.

Parameters
[in,out]devComponent device.
Returns
0 on success, negative error code on failure.

◆ free

void(* comp_ops::free) (struct comp_dev *dev)

Called to delete the specified component device.

Parameters
[in,out]devComponent device to be deleted.

◆ get_attribute

int(* comp_ops::get_attribute) (struct comp_dev *dev, uint32_t type, void *value)

Gets attribute in component.

Parameters
[in]devComponent device.
[in]typeAttribute type.
[out]valueAttribute value buffer.
Returns
0 if succeeded, error code otherwise.

◆ get_large_config

int(* comp_ops::get_large_config) (struct comp_dev *dev, uint32_t param_id, bool first_block, bool last_block, uint32_t *data_offset, char *data)

Gets large config in component.

Parameters
[in,out]devComponent device.
[in]param_idParameter ID for each component.
[in]first_blockFirst block of large block.
[in]last_blockLast block of large block.
[in,out]data_offsetBlock offset filled by callee.
[out]dataBlock data buffer.
Returns
0 if succeeded, error code otherwise.

◆ get_total_data_processed

uint64_t(* comp_ops::get_total_data_processed) (struct comp_dev *dev, uint32_t stream_no, bool input)

Returns total data processed in number of bytes.

Parameters
[in]devComponent device.
[in]stream_noIndex of input/output stream.
[in]inputSelects between input (true) or output (false) stream direction.
Returns
Total data processed if succeeded, 0 otherwise.

◆ params

int(* comp_ops::params) (struct comp_dev *dev, struct sof_ipc_stream_params *params)

Sets component audio stream parameters.

Parameters
[in,out]devComponent device.
[in,out]paramsAudio (PCM) stream parameters to be set.
Returns
0 on success, negative error code on failure.

◆ position

int(* comp_ops::position) (struct comp_dev *dev, struct sof_ipc_stream_posn *posn)

Retrieves component rendering position.

Parameters
[in]devComponent device.
[out]posnReceives reported position.
Returns
0 on success, negative error code on failure.

◆ prepare

int(* comp_ops::prepare) (struct comp_dev *dev)

Prepares component after params are set.

Parameters
[in,out]devComponent device.
Returns
0 on success, negative error code on failure.

◆ reset

int(* comp_ops::reset) (struct comp_dev *dev)

Resets component.

Parameters
[in,out]devComponent device.
Returns
0 on success, negative error code on failure.

◆ set_attribute

int(* comp_ops::set_attribute) (struct comp_dev *dev, uint32_t type, void *value)

Sets attribute in component.

Parameters
[in,out]devComponent device.
[in]typeAttribute type.
[in]valueAttribute value.
Returns
0 if succeeded, error code otherwise.

◆ set_large_config

int(* comp_ops::set_large_config) (struct comp_dev *dev, uint32_t param_id, bool first_block, bool last_block, uint32_t data_offset, const char *data)

Set large config in component.

Parameters
[in,out]devComponent device.
[in]param_idParameter ID for each component.
[in]first_blockFirst block of large block.
[in]last_blockLast block of large block.
[in]data_offsetBlock offset in large block.
[in]dataBlock data payload.
Returns
0 if succeeded, error code otherwise.

◆ trigger

int(* comp_ops::trigger) (struct comp_dev *dev, int cmd)

Trigger, atomic - used to start/stop/pause stream operations.

Parameters
[in,out]devComponent device.
[in]cmdCommand, one of COMP_TRIGGER_...
Returns
0 on success, negative error code on failure.

◆ unbind

int(* comp_ops::unbind) (struct comp_dev *dev, const struct bind_info *unbind_data)

Unbind, atomic - used to notify component of unbind event.

Parameters
[in,out]devComponent device.
[in]unbind_dataUnbind info.
Returns
0 on success, negative error code on failure.

The documentation for this struct was generated from the following file: