Sound Open Firmware
Loading...
Searching...
No Matches
audio_buffer.h File Reference
Include dependency graph for audio_buffer.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  audio_buffer_ops
struct  sof_audio_buffer

Macros

#define BUFFER_TYPE_LEGACY_BUFFER   1
#define BUFFER_TYPE_RING_BUFFER   2

Functions

static struct sof_sink * audio_buffer_get_sink (struct sof_audio_buffer *buffer)
 return a handler to sink API of audio_buffer.
static struct sof_source * audio_buffer_get_source (struct sof_audio_buffer *buffer)
 return a handler to source API of audio_buffer the handler may be used by helper functions defined in source_api.h
static bool audio_buffer_is_shared (struct sof_audio_buffer *buffer)
static bool audio_buffer_hw_params_configured (struct sof_audio_buffer *buffer)
static void audio_buffer_set_hw_params_configured (struct sof_audio_buffer *buffer)
static void audio_buffer_reset_params (struct sof_audio_buffer *buffer)
static enum sof_audio_buffer_state audio_buffer_get_state (const struct sof_audio_buffer *buffer)
static void audio_buffer_set_state (struct sof_audio_buffer *buffer, enum sof_audio_buffer_state state)
static void audio_buffer_set_eos (struct sof_audio_buffer *buffer)
static uint16_t audio_buffer_get_chmap (struct sof_audio_buffer *buffer, size_t index)
static void audio_buffer_set_chmap (struct sof_audio_buffer *buffer, size_t index, uint16_t value)
static struct sof_audio_stream_params * audio_buffer_get_stream_params (struct sof_audio_buffer *buffer)
 return a handler to stream params structure
static struct sof_audio_buffer * sof_audio_buffer_from_sink (struct sof_sink *sink)
 return a pointer to struct sof_audio_buffer from sink pointer NOTE!
static struct sof_audio_buffer * sof_audio_buffer_from_source (struct sof_source *source)
 return a pointer to struct sof_audio_buffer from source pointer NOTE!
void audio_buffer_init (struct sof_audio_buffer *buffer, uint32_t buffer_type, bool is_shared, const struct source_ops *source_ops, const struct sink_ops *sink_ops, const struct audio_buffer_ops *audio_buffer_ops, struct sof_audio_stream_params *audio_stream_params)
 initialize audio buffer structures
void audio_buffer_free (struct sof_audio_buffer *buffer)
 free buffer and all allocated resources
static void audio_buffer_reset (struct sof_audio_buffer *buffer)
 clean all buffer data, set buffer positions to initial, leaving config as is the procedure is to be called only when buffer is not in use
int audio_buffer_source_set_ipc_params (struct sof_source *source, struct sof_ipc_stream_params *params, bool force_update)
int audio_buffer_source_on_audio_format_set (struct sof_source *source)
int audio_buffer_source_set_alignment_constants (struct sof_source *source, const uint32_t byte_align, const uint32_t frame_align_req)
int audio_buffer_sink_set_ipc_params (struct sof_sink *sink, struct sof_ipc_stream_params *params, bool force_update)
int audio_buffer_sink_on_audio_format_set (struct sof_sink *sink)
int audio_buffer_sink_set_alignment_constants (struct sof_sink *sink, const uint32_t byte_align, const uint32_t frame_align_req)
uint32_t audio_buffer_sink_get_lft (struct sof_sink *sink)

Macro Definition Documentation

◆ BUFFER_TYPE_LEGACY_BUFFER

#define BUFFER_TYPE_LEGACY_BUFFER   1

◆ BUFFER_TYPE_RING_BUFFER

#define BUFFER_TYPE_RING_BUFFER   2

Function Documentation

◆ audio_buffer_free()

void audio_buffer_free ( struct sof_audio_buffer * buffer)

free buffer and all allocated resources

◆ audio_buffer_get_chmap()

uint16_t audio_buffer_get_chmap ( struct sof_audio_buffer * buffer,
size_t index )
inlinestatic

◆ audio_buffer_get_sink()

struct sof_sink * audio_buffer_get_sink ( struct sof_audio_buffer * buffer)
inlinestatic

return a handler to sink API of audio_buffer.

the handler may be used by helper functions defined in sink_api.h

◆ audio_buffer_get_source()

struct sof_source * audio_buffer_get_source ( struct sof_audio_buffer * buffer)
inlinestatic

return a handler to source API of audio_buffer the handler may be used by helper functions defined in source_api.h

◆ audio_buffer_get_state()

enum sof_audio_buffer_state audio_buffer_get_state ( const struct sof_audio_buffer * buffer)
inlinestatic

◆ audio_buffer_get_stream_params()

struct sof_audio_stream_params * audio_buffer_get_stream_params ( struct sof_audio_buffer * buffer)
inlinestatic

return a handler to stream params structure

◆ audio_buffer_hw_params_configured()

bool audio_buffer_hw_params_configured ( struct sof_audio_buffer * buffer)
inlinestatic

◆ audio_buffer_init()

void audio_buffer_init ( struct sof_audio_buffer * buffer,
uint32_t buffer_type,
bool is_shared,
const struct source_ops * source_ops,
const struct sink_ops * sink_ops,
const struct audio_buffer_ops * audio_buffer_ops,
struct sof_audio_stream_params * audio_stream_params )

initialize audio buffer structures

Parameters
bufferpointer to the audio_buffer
buffer_typea type of the buffer, BUFFER_TYPE_*
is_sharedindicates if the buffer will be shared between cores
source_opspointer to virtual methods table for source API
sink_opspointer to virtual methods table for sink API
audio_buffer_opspointer to required buffer virtual methods implementation
audio_stream_paramspointer to audio stream (currently kept in buffer implementation)

in sink_ops and source_ops API if there's no implemented of following methods: on_audio_format_set audio_set_ipc_params set_alignment_constants

default implementation will be used instead, redirecting those calls to proper audio_buffer_ops operations

◆ audio_buffer_is_shared()

bool audio_buffer_is_shared ( struct sof_audio_buffer * buffer)
inlinestatic

◆ audio_buffer_reset()

void audio_buffer_reset ( struct sof_audio_buffer * buffer)
inlinestatic

clean all buffer data, set buffer positions to initial, leaving config as is the procedure is to be called only when buffer is not in use

◆ audio_buffer_reset_params()

void audio_buffer_reset_params ( struct sof_audio_buffer * buffer)
inlinestatic

◆ audio_buffer_set_chmap()

void audio_buffer_set_chmap ( struct sof_audio_buffer * buffer,
size_t index,
uint16_t value )
inlinestatic

◆ audio_buffer_set_eos()

void audio_buffer_set_eos ( struct sof_audio_buffer * buffer)
inlinestatic

◆ audio_buffer_set_hw_params_configured()

void audio_buffer_set_hw_params_configured ( struct sof_audio_buffer * buffer)
inlinestatic

◆ audio_buffer_set_state()

void audio_buffer_set_state ( struct sof_audio_buffer * buffer,
enum sof_audio_buffer_state state )
inlinestatic

◆ audio_buffer_sink_get_lft()

uint32_t audio_buffer_sink_get_lft ( struct sof_sink * sink)

◆ audio_buffer_sink_on_audio_format_set()

int audio_buffer_sink_on_audio_format_set ( struct sof_sink * sink)

◆ audio_buffer_sink_set_alignment_constants()

int audio_buffer_sink_set_alignment_constants ( struct sof_sink * sink,
const uint32_t byte_align,
const uint32_t frame_align_req )

◆ audio_buffer_sink_set_ipc_params()

int audio_buffer_sink_set_ipc_params ( struct sof_sink * sink,
struct sof_ipc_stream_params * params,
bool force_update )

◆ audio_buffer_source_on_audio_format_set()

int audio_buffer_source_on_audio_format_set ( struct sof_source * source)

◆ audio_buffer_source_set_alignment_constants()

int audio_buffer_source_set_alignment_constants ( struct sof_source * source,
const uint32_t byte_align,
const uint32_t frame_align_req )

◆ audio_buffer_source_set_ipc_params()

int audio_buffer_source_set_ipc_params ( struct sof_source * source,
struct sof_ipc_stream_params * params,
bool force_update )

◆ sof_audio_buffer_from_sink()

struct sof_audio_buffer * sof_audio_buffer_from_sink ( struct sof_sink * sink)
inlinestatic

return a pointer to struct sof_audio_buffer from sink pointer NOTE!

ensure that sink is really provided by sof_audio_buffer otherwise a random value will be returned

◆ sof_audio_buffer_from_source()

struct sof_audio_buffer * sof_audio_buffer_from_source ( struct sof_source * source)
inlinestatic

return a pointer to struct sof_audio_buffer from source pointer NOTE!

ensure that source is really provided by sof_audio_buffer otherwise a random value will be returned