Zephyr API Documentation  2.7.0-rc2
A Scalable Open Source RTOS
Audio Codec Interface

Abstraction for audio codecs. More...

Data Structures

union  audio_dai_cfg_t
 
struct  audio_codec_cfg
 
union  audio_property_value_t
 

Enumerations

enum  audio_pcm_rate_t {
  AUDIO_PCM_RATE_8K = 8000 , AUDIO_PCM_RATE_16K = 16000 , AUDIO_PCM_RATE_24K = 24000 , AUDIO_PCM_RATE_32K = 32000 ,
  AUDIO_PCM_RATE_44P1K = 44100 , AUDIO_PCM_RATE_48K = 48000 , AUDIO_PCM_RATE_96K = 96000 , AUDIO_PCM_RATE_192K = 192000
}
 
enum  audio_pcm_width_t { AUDIO_PCM_WIDTH_16_BITS = 16 , AUDIO_PCM_WIDTH_20_BITS = 20 , AUDIO_PCM_WIDTH_24_BITS = 24 , AUDIO_PCM_WIDTH_32_BITS = 32 }
 
enum  audio_dai_type_t { AUDIO_DAI_TYPE_I2S , AUDIO_DAI_TYPE_INVALID }
 
enum  audio_property_t { AUDIO_PROPERTY_OUTPUT_VOLUME , AUDIO_PROPERTY_OUTPUT_MUTE }
 
enum  audio_channel_t {
  AUDIO_CHANNEL_FRONT_LEFT , AUDIO_CHANNEL_FRONT_RIGHT , AUDIO_CHANNEL_LFE , AUDIO_CHANNEL_FRONT_CENTER ,
  AUDIO_CHANNEL_REAR_LEFT , AUDIO_CHANNEL_REAR_RIGHT , AUDIO_CHANNEL_REAR_CENTER , AUDIO_CHANNEL_SIDE_LEFT ,
  AUDIO_CHANNEL_SIDE_RIGHT , AUDIO_CHANNEL_ALL
}
 

Functions

static int audio_codec_configure (const struct device *dev, struct audio_codec_cfg *cfg)
 Configure the audio codec. More...
 
static void audio_codec_start_output (const struct device *dev)
 Set codec to start output audio playback. More...
 
static void audio_codec_stop_output (const struct device *dev)
 Set codec to stop output audio playback. More...
 
static int audio_codec_set_property (const struct device *dev, audio_property_t property, audio_channel_t channel, audio_property_value_t val)
 Set a codec property defined by audio_property_t. More...
 
static int audio_codec_apply_properties (const struct device *dev)
 Atomically apply any cached properties. More...
 

Detailed Description

Abstraction for audio codecs.

Enumeration Type Documentation

◆ audio_channel_t

#include <include/audio/codec.h>

Audio channel identifiers to use in audio_codec_set_property()

Enumerator
AUDIO_CHANNEL_FRONT_LEFT 
AUDIO_CHANNEL_FRONT_RIGHT 
AUDIO_CHANNEL_LFE 
AUDIO_CHANNEL_FRONT_CENTER 
AUDIO_CHANNEL_REAR_LEFT 
AUDIO_CHANNEL_REAR_RIGHT 
AUDIO_CHANNEL_REAR_CENTER 
AUDIO_CHANNEL_SIDE_LEFT 
AUDIO_CHANNEL_SIDE_RIGHT 
AUDIO_CHANNEL_ALL 

◆ audio_dai_type_t

#include <include/audio/codec.h>

Digital Audio Interface (DAI) type

Enumerator
AUDIO_DAI_TYPE_I2S 
AUDIO_DAI_TYPE_INVALID 

◆ audio_pcm_rate_t

#include <include/audio/codec.h>

PCM audio sample rates

Enumerator
AUDIO_PCM_RATE_8K 
AUDIO_PCM_RATE_16K 
AUDIO_PCM_RATE_24K 
AUDIO_PCM_RATE_32K 
AUDIO_PCM_RATE_44P1K 
AUDIO_PCM_RATE_48K 
AUDIO_PCM_RATE_96K 
AUDIO_PCM_RATE_192K 

◆ audio_pcm_width_t

#include <include/audio/codec.h>

PCM audio sample bit widths

Enumerator
AUDIO_PCM_WIDTH_16_BITS 
AUDIO_PCM_WIDTH_20_BITS 
AUDIO_PCM_WIDTH_24_BITS 
AUDIO_PCM_WIDTH_32_BITS 

◆ audio_property_t

#include <include/audio/codec.h>

Codec properties that can be set by audio_codec_set_property()

Enumerator
AUDIO_PROPERTY_OUTPUT_VOLUME 
AUDIO_PROPERTY_OUTPUT_MUTE 

Function Documentation

◆ audio_codec_apply_properties()

static int audio_codec_apply_properties ( const struct device dev)
inlinestatic

#include <include/audio/codec.h>

Atomically apply any cached properties.

Following one or more invocations of audio_codec_set_property, that may have been cached by the driver, audio_codec_apply_properties can be invoked to apply all the properties as atomic as possible

Parameters
devPointer to the device structure for codec driver instance.
Returns
0 on success, negative error code on failure

◆ audio_codec_configure()

static int audio_codec_configure ( const struct device dev,
struct audio_codec_cfg cfg 
)
inlinestatic

#include <include/audio/codec.h>

Configure the audio codec.

Configure the audio codec device according to the configuration parameters provided as input

Parameters
devPointer to the device structure for codec driver instance.
cfgPointer to the structure containing the codec configuration.
Returns
0 on success, negative error code on failure

◆ audio_codec_set_property()

static int audio_codec_set_property ( const struct device dev,
audio_property_t  property,
audio_channel_t  channel,
audio_property_value_t  val 
)
inlinestatic

#include <include/audio/codec.h>

Set a codec property defined by audio_property_t.

Set a property such as volume level, clock configuration etc.

Parameters
devPointer to the device structure for codec driver instance.
propertyThe codec property to set
channelThe audio channel for which the property has to be set
valpointer to a property value of type audio_codec_property_value_t
Returns
0 on success, negative error code on failure

◆ audio_codec_start_output()

static void audio_codec_start_output ( const struct device dev)
inlinestatic

#include <include/audio/codec.h>

Set codec to start output audio playback.

Setup the audio codec device to start the audio playback

Parameters
devPointer to the device structure for codec driver instance.
Returns
none

◆ audio_codec_stop_output()

static void audio_codec_stop_output ( const struct device dev)
inlinestatic

#include <include/audio/codec.h>

Set codec to stop output audio playback.

Setup the audio codec device to stop the audio playback

Parameters
devPointer to the device structure for codec driver instance.
Returns
none