14#ifndef ZEPHYR_INCLUDE_AUDIO_CODEC_H_
15#define ZEPHYR_INCLUDE_AUDIO_CODEC_H_
119struct audio_codec_api {
120 int (*configure)(
const struct device *dev,
122 void (*start_output)(
const struct device *dev);
123 void (*stop_output)(
const struct device *dev);
124 int (*set_property)(
const struct device *dev,
128 int (*apply_properties)(
const struct device *dev);
148 const struct audio_codec_api *api =
149 (
const struct audio_codec_api *)dev->
api;
151 return api->configure(dev, cfg);
163 const struct audio_codec_api *api =
164 (
const struct audio_codec_api *)dev->
api;
166 api->start_output(dev);
178 const struct audio_codec_api *api =
179 (
const struct audio_codec_api *)dev->
api;
181 api->stop_output(dev);
201 const struct audio_codec_api *api =
202 (
const struct audio_codec_api *)dev->
api;
204 return api->set_property(dev, property, channel, val);
220 const struct audio_codec_api *api =
221 (
const struct audio_codec_api *)dev->
api;
223 return api->apply_properties(dev);
static int audio_codec_configure(const struct device *dev, struct audio_codec_cfg *cfg)
Configure the audio codec.
Definition: codec.h:145
audio_dai_type_t
Digital Audio Interface (DAI) type.
Definition: codec.h:58
static void audio_codec_start_output(const struct device *dev)
Set codec to start output audio playback.
Definition: codec.h:161
audio_pcm_width_t
PCM audio sample bit widths.
Definition: codec.h:48
audio_property_t
Codec properties that can be set by audio_codec_set_property().
Definition: codec.h:66
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.
Definition: codec.h:196
static void audio_codec_stop_output(const struct device *dev)
Set codec to stop output audio playback.
Definition: codec.h:176
audio_pcm_rate_t
PCM audio sample rates.
Definition: codec.h:34
audio_channel_t
Audio channel identifiers to use in audio_codec_set_property().
Definition: codec.h:74
static int audio_codec_apply_properties(const struct device *dev)
Atomically apply any cached properties.
Definition: codec.h:218
@ AUDIO_DAI_TYPE_I2S
I2S Interface.
Definition: codec.h:59
@ AUDIO_DAI_TYPE_INVALID
Other interfaces can be added here.
Definition: codec.h:60
@ AUDIO_PCM_WIDTH_16_BITS
16-bit sample width
Definition: codec.h:49
@ AUDIO_PCM_WIDTH_32_BITS
32-bit sample width
Definition: codec.h:52
@ AUDIO_PCM_WIDTH_20_BITS
20-bit sample width
Definition: codec.h:50
@ AUDIO_PCM_WIDTH_24_BITS
24-bit sample width
Definition: codec.h:51
@ AUDIO_PROPERTY_OUTPUT_VOLUME
Output volume.
Definition: codec.h:67
@ AUDIO_PROPERTY_OUTPUT_MUTE
Output mute/unmute.
Definition: codec.h:68
@ AUDIO_PCM_RATE_32K
32 kHz sample rate
Definition: codec.h:38
@ AUDIO_PCM_RATE_192K
192 kHz sample rate
Definition: codec.h:42
@ AUDIO_PCM_RATE_8K
8 kHz sample rate
Definition: codec.h:35
@ AUDIO_PCM_RATE_48K
48 kHz sample rate
Definition: codec.h:40
@ AUDIO_PCM_RATE_44P1K
44.1 kHz sample rate
Definition: codec.h:39
@ AUDIO_PCM_RATE_96K
96 kHz sample rate
Definition: codec.h:41
@ AUDIO_PCM_RATE_16K
16 kHz sample rate
Definition: codec.h:36
@ AUDIO_PCM_RATE_24K
24 kHz sample rate
Definition: codec.h:37
@ AUDIO_CHANNEL_FRONT_LEFT
Front left channel.
Definition: codec.h:75
@ AUDIO_CHANNEL_FRONT_RIGHT
Front right channel.
Definition: codec.h:76
@ AUDIO_CHANNEL_ALL
All channels.
Definition: codec.h:84
@ AUDIO_CHANNEL_REAR_RIGHT
Rear right channel.
Definition: codec.h:80
@ AUDIO_CHANNEL_REAR_LEFT
Rear left channel.
Definition: codec.h:79
@ AUDIO_CHANNEL_LFE
Low frequency effect channel.
Definition: codec.h:77
@ AUDIO_CHANNEL_SIDE_RIGHT
Side right channel.
Definition: codec.h:83
@ AUDIO_CHANNEL_FRONT_CENTER
Front center channel.
Definition: codec.h:78
@ AUDIO_CHANNEL_SIDE_LEFT
Side left channel.
Definition: codec.h:82
@ AUDIO_CHANNEL_REAR_CENTER
Rear center channel.
Definition: codec.h:81
Public APIs for the I2S (Inter-IC Sound) bus drivers.
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
Codec configuration parameters.
Definition: codec.h:100
audio_dai_type_t dai_type
Digital interface type.
Definition: codec.h:102
uint32_t mclk_freq
MCLK input frequency in Hz.
Definition: codec.h:101
audio_dai_cfg_t dai_cfg
DAI configuration info.
Definition: codec.h:103
Runtime device structure (in ROM) per driver instance.
Definition: device.h:381
const void * api
Address of the API structure exposed by the device instance.
Definition: device.h:387
Interface configuration options.
Definition: i2s.h:293
Digital Audio Interface Configuration.
Definition: codec.h:92
Codec property values.
Definition: codec.h:109
bool mute
Mute if true, unmute if false.
Definition: codec.h:111
int vol
Volume level in 0.5dB resolution.
Definition: codec.h:110