11const int rate_num[14] = {8000, 11025, 16000, 22050, 24000, 32000, 44100,
12 48000, 64000, 88200, 96000, 128000, 176400, 192000};
80 AD_LOGE(
"bits not supported: %d", bits);
86 for (
int j = 0; j < 14; j++) {
114 AD_LOGE(
"Channels not supported: %d - using %d", channels, 2);
124 for (
int j = 0; j < 14; j++) {
128 return requestedRate;
130 int new_diff = abs(
rate_num[j] - requestedRate);
131 if (new_diff < diff) {
137 AD_LOGE(
"Sample Rate not supported: %d - using %d", requestedRate,
146 bool is_input =
false;
147 bool is_output =
false;
153 if (is_input && is_output) {
154 AD_LOGD(
"mode->CODEC_MODE_BOTH");
159 AD_LOGD(
"mode->CODEC_MODE_DECODE");
164 AD_LOGD(
"mode->CODEC_MODE_ENCODE");
168 AD_LOGD(
"mode->CODEC_MODE_NONE");
197 AD_LOGE(
"AudioBoard::pins::begin failed");
202 AD_LOGE(
"setConfig has failed");
213 AD_LOGI(
"AudioDriver::setConfig");
216 AD_LOGE(
"AudioDriver init failed");
221 AD_LOGE(
"AudioDriver controlState failed");
226 AD_LOGE(
"AudioDriver configInterface failed");
237 AD_LOGE(
"setMute not supported on line level");
264 AD_LOGI(
"PinFunction::PA not defined");
267 AD_LOGI(
"setPAPower pin %d -> %d", pin, enable);
276 operator bool() {
return p_pins !=
nullptr; }
281 if (
p_pins ==
nullptr)
return true;
285 AD_LOGI(
"==> Updating address: 0x%x", adr);
292 AD_LOGW(
"No I2C Pins defined");
303 auto value = i2c.value();
304 auto addr = value.address;
305 if (addr > -1)
return addr;
315 AD_LOGW(
"No i2c address defined - ignoring");
322 assert(
p_pins !=
nullptr);
331 int mapVolume(
int x,
int in_min,
int in_max,
int out_min,
int out_max) {
332 return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
357 if (volume > max) volume = max;
358 if (volume < min) volume = min;
376 virtual bool end(
void) {
return true; }
377 virtual bool setMute(
bool enable) {
return false; }
437 AD_LOGD(
"AudioDriverCS43l22Class::begin");
444 AD_LOGE(
"AudioBoard::pins::begin failed");
461 AD_LOGE(
"error: cs43l22.init");
524 switch (output_device) {
552 AD_LOGD(
"AudioDriverCS42L51Class::begin");
557 AD_LOGE(
"AudioBoard::pins::begin failed");
572 AD_LOGE(
"error: cs42l51.init");
634 switch (input_device) {
674 AD_LOGE(
"AudioBoard::pins::begin failed");
692 assert(
p_pins !=
nullptr);
1006 AD_LOGD(
"input volume: %d -> gain idx %d", volume, idx);
1023 if (mclk_src == -1) {
1026 AD_LOGI(
"MCLK_SOURCE: %d", mclk_src);
1028 assert(
getI2C() !=
nullptr);
1072 auto codec_mode = this->codec_cfg.get_mode();
1107 AD_LOGD(
"invalid line %d", line);
1167 AD_LOGD(
"input volume: %d -> gain %d [dB] (idx: %d of 0..8)", volume, gain,
1258 AD_LOGE(
"AudioBoard::pins::begin failed");
1279 AD_LOGE(
"configure_clocking");
1363 AD_LOGI(
"features: %d", features);
1377 AD_LOGE(
"wm8960.configureClocking");
1406 AD_LOGE(
"Unsupported rate: %d", rate);
1422 AD_LOGE(
"Unsupported bits: %d", bits);
1448 AD_LOGE(
"AudioBoard::pins::begin failed");
1477 if (bits < 0)
return false;
1479 if (i2s < 0)
return false;
1601 AD_LOGE(
"AudioBoard::pins::begin failed");
1659 switch (output_device) {
1707 AD_LOGE(
"Only slave is supported: MCU must be master");
1711 switch (iface.
bits) {
1714 AD_LOGW(
"Only I2S_RIGHT is supported for 16 bits");
1721 switch (iface.
fmt) {
1729 AD_LOGE(
"Unsupported fmt for tdm");
1733 switch (iface.
fmt) {
1769 AD_LOGI(
"AudioDriverLyratMiniClass::begin");
1779 AD_LOGE(
"AudioBoard::pins::begin failed");
1831 AD_LOGI(
"AudioDriverCombined::begin");
1835 assert(
p_dac !=
nullptr);
1836 assert(
p_adc !=
nullptr);
1846 AD_LOGE(
"AudioBoard::pins::begin failed");
1904template <
class T, u
int8_t DefaultI2CAddress = 0>
1968 AD_LOGI(
"AudioDriverNAU8325Class::begin");
1973 AD_LOGE(
"AudioBoard::pins::begin failed");
1980 AD_LOGE(
"No I2C pins defined for codec");
1983 InfoI2C val = i2c_opt.value();
2000 AD_LOGI(
"Calling nau8325->begin(fs=%d, bits=%d)", fs, bits);
2002 AD_LOGE(
"NAU8325 begin failed");
2025 uint8_t val =
mapVolume(volume, 0, 100, 0, 255);
2044class AudioDriverAD1938Class :
public AudioDriver {
2046 bool begin(CodecConfig codecCfg, DriverDeviceInfo& pins)
override {
2048 int clatch = pins.getPinID(PinFunction::LATCH);
2049 if (clatch < 0)
return false;
2050 int reset = pins.getPinID(PinFunction::RESET);
2051 if (reset < 0)
return false;
2052 auto spi_opt = pins.getSPIPins(PinFunction::CODEC);
2053 SPIClass* p_spi =
nullptr;
2055 p_spi = (SPIClass*)spi_opt.value().p_spi;
2062 if (!p_pins->begin()) {
2063 AD_LOGE(
"AudioBoard::pins::begin failed");
2067 ad1938.begin(getGPIO(), codecCfg, clatch, reset, *p_spi);
2069 ad1938.setMute(
false);
2072 virtual bool setConfig(CodecConfig codecCfg) {
2073 assert(p_pins !=
nullptr);
2074 bool result = begin(codecCfg, *p_pins);
2077 bool end(
void)
override {
return ad1938.end(); }
2078 bool setMute(
bool mute)
override {
return ad1938.setMute(mute); }
2080 bool setMute(
bool mute,
int line) {
2081 if (line < 0 || line > 7)
return false;
2082 return ad1938.setVolume(
2083 line, mute ? 0.0f : (static_cast<float>(volumes[line]) / 100.0f));
2087 bool setVolume(
int volume)
override {
2088 this->volume = volume;
2089 for (
int j = 0; j < 8; j++) {
2090 volumes[j] = volume;
2092 return ad1938.setVolume(
static_cast<float>(volume) / 100.0f);
2096 bool setVolume(
int volume,
int line) {
2097 if (line < 0 || line > 7)
return false;
2098 volumes[line] = volume;
2099 return ad1938.setVolume(line,
static_cast<float>(volume) / 100.0f);
2102 int getVolume()
override {
return volume; }
2103 bool setInputVolume(
int volume)
override {
return false; }
2104 bool isVolumeSupported()
override {
return true; }
2105 bool isInputVolumeSupported()
override {
return false; }
2107 DriverDeviceInfo& pins() {
return *p_pins; }
2108 AD1938& driver() {
return ad1938; }
2113 int volumes[8] = {100, 100, 100, 100, 100, 100, 100, 100};
2230static AudioDriverAD1938Class AudioDriverAD1938;
#define DRIVER_DEFAULT_VOLUME
Definition ConfigAudioDriver.h:5
#define AI_THINKER_ES8388_VOLUME_HACK
Definition ConfigAudioDriver.h:20
#define RESULT_OK
Definition DriverCommon.h:74
#define GPIO_UNDEFINED
Definition DriverCommon.h:131
#define HIGH
Definition DriverCommon.h:35
#define OUTPUT
Definition DriverCommon.h:44
#define DEFAULT_WIRE
Definition DriverCommon.h:32
#define LOW
Definition DriverCommon.h:38
#define AD_LOGD(...)
Definition Logger.h:12
#define AD_LOGI(...)
Definition Logger.h:13
#define AD_LOGE(...)
Definition Logger.h:15
#define AD_LOGW(...)
Definition Logger.h:14
Header-only driver class for the AC101 codec chip.
Definition AC101.h:108
error_t deinit()
Definition AC101.h:229
void setAddress(int addr)
Defines the I2C device address.
Definition AC101.h:177
error_t ctrlStateActive(codec_mode_t mode, bool ctrlStateActive)
Definition AC101.h:233
error_t setVoiceMute(bool enable)
Definition AC101.h:421
error_t configI2S(codec_mode_t mode, I2SDefinition *iface)
Definition AC101.h:263
void setWire(i2c_bus_handle_t handle)
Defines the I2C bus instance to be used.
Definition AC101.h:174
error_t setVoiceVolume(int volume)
Definition AC101.h:431
error_t getVoiceVolume(int *volume)
Definition AC101.h:438
error_t init(codec_config_t *codec_cfg)
Definition AC101.h:181
virtual bool digitalWrite(GpioPin pin, bool value)=0
virtual void pinMode(GpioPin pin, int mode)=0
Driver API for AC101 codec chip.
Definition AudioDriver.h:390
AC101 & driver()
Provides access to the wrapped AC101 driver instance.
Definition AudioDriver.h:406
bool deinit()
Definition AudioDriver.h:416
bool init(codec_config_t codec_cfg)
Definition AudioDriver.h:411
AudioDriverAC101Class(uint16_t deviceAddr=0x1A)
Definition AudioDriver.h:392
bool setMute(bool mute)
Mutes all output lines.
Definition AudioDriver.h:395
int getVolume()
Determines the actual volume (range: 0-100)
Definition AudioDriver.h:399
AC101 ac101
Definition AudioDriver.h:409
bool setVolume(int volume)
Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.
Definition AudioDriver.h:396
bool configInterface(codec_mode_t mode, I2SDefinition iface)
Definition AudioDriver.h:420
bool controlState(codec_mode_t mode)
Definition AudioDriver.h:417
Driver API for CS42448 TDS DAC/ADC.
Definition AudioDriver.h:664
int getVolume() override
Determines the actual volume (range: 0-100)
Definition AudioDriver.h:711
bool isInputVolumeSupported() override
Determines if setInputVolume() is supported.
Definition AudioDriver.h:717
CS42448 & driver()
Definition AudioDriver.h:720
bool isVolumeSupported() override
Determines if setVolume() is suppored.
Definition AudioDriver.h:716
CS42448 cs42448
Definition AudioDriver.h:723
bool setMute(bool enable) override
Mutes all output lines.
Definition AudioDriver.h:698
virtual bool setConfig(CodecConfig codecCfg)
changes the configuration
Definition AudioDriver.h:682
bool begin(CodecConfig codecCfg, DriverDeviceInfo &pins) override
Starts the processing.
Definition AudioDriver.h:669
bool setVolume(int dac, int volume)
Definition AudioDriver.h:707
DriverDeviceInfo & pins()
Provides the pin information.
Definition AudioDriver.h:719
AudioDriverCS42448Class(uint16_t deviceAddr=0x48)
Definition AudioDriver.h:666
bool end(void) override
Ends the processing: shut down dac and adc.
Definition AudioDriver.h:697
bool setInputVolume(int volume) override
Defines the input volume (range: 0-100) if supported.
Definition AudioDriver.h:712
bool setVolume(int volume) override
Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.
Definition AudioDriver.h:703
CodecConfig cfg
Definition AudioDriver.h:725
bool setMute(bool enable, int line)
Mute individual lines: only supported for some rare DACs.
Definition AudioDriver.h:699
int volume
Definition AudioDriver.h:724
Driver API for CS42L51 codec chip.
Definition AudioDriver.h:545
AudioDriverCS42L51Class(uint16_t deviceAddr=0x4A)
Definition AudioDriver.h:547
uint32_t getOutput(output_device_t output_device)
Definition AudioDriver.h:653
bool deinit()
Definition AudioDriver.h:604
uint32_t getInput(input_device_t input_device)
Definition AudioDriver.h:633
virtual bool setConfig(CodecConfig codecCfg)
changes the configuration
Definition AudioDriver.h:578
CS42L51 cs42l51
Definition AudioDriver.h:601
bool setMute(bool mute)
Mutes all output lines.
Definition AudioDriver.h:586
int getVolume()
Determines the actual volume (range: 0-100)
Definition AudioDriver.h:595
uint32_t getFrequency(samplerate_t rateNum)
Definition AudioDriver.h:611
virtual bool begin(CodecConfig codecCfg, DriverDeviceInfo &pins)
Starts the processing.
Definition AudioDriver.h:551
CS42L51 & driver()
Provides access to the wrapped CS42L51 driver instance.
Definition AudioDriver.h:598
bool setVolume(int volume)
Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.
Definition AudioDriver.h:591
int volume
Definition AudioDriver.h:602
Driver API for the CS43l22 codec chip on 0x94 (0x4A<<1)
Definition AudioDriver.h:430
CS43L22 & driver()
Provides access to the wrapped CS43L22 driver instance.
Definition AudioDriver.h:486
bool deinit()
Definition AudioDriver.h:492
virtual bool setConfig(CodecConfig codecCfg)
changes the configuration
Definition AudioDriver.h:467
bool setMute(bool mute)
Mutes all output lines.
Definition AudioDriver.h:474
int getVolume()
Determines the actual volume (range: 0-100)
Definition AudioDriver.h:483
uint32_t getFrequency(samplerate_t rateNum)
Definition AudioDriver.h:499
virtual bool begin(CodecConfig codecCfg, DriverDeviceInfo &pins)
Starts the processing.
Definition AudioDriver.h:436
bool setVolume(int volume)
Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.
Definition AudioDriver.h:479
CS43L22 cs43l22
Definition AudioDriver.h:489
int volume
Definition AudioDriver.h:490
uint16_t getOutput(output_device_t output_device)
Definition AudioDriver.h:523
AudioDriverCS43l22Class(uint16_t deviceAddr=0x4A)
Definition AudioDriver.h:432
Generic Driver API for boards with a different DAC and ADC codec chip.
Definition AudioDriver.h:1825
int getVolume() override
Determines the actual volume (range: 0-100)
Definition AudioDriver.h:1876
bool end(void)
Ends the processing: shut down dac and adc.
Definition AudioDriver.h:1868
bool isInputVolumeSupported() override
Determines if setInputVolume() is supported.
Definition AudioDriver.h:1879
bool setMute(bool enable) override
Mutes all output lines.
Definition AudioDriver.h:1874
AudioDriverCombined(AudioDriver &dac, AudioDriver &adc, bool sdActive=true)
Definition AudioDriver.h:1827
AudioDriver * p_dac
Definition AudioDriver.h:1882
AudioDriver * p_adc
Definition AudioDriver.h:1883
bool begin(CodecConfig codecCfg, DriverDeviceInfo &pins)
Starts the processing.
Definition AudioDriver.h:1830
bool setInputVolume(int volume) override
Defines the input volume (range: 0-100) if supported.
Definition AudioDriver.h:1877
bool setVolume(int volume) override
Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.
Definition AudioDriver.h:1875
int getInputVolume()
Definition AudioDriver.h:1878
Driver API for ES7210 codec chip. This chip supports only input!
Definition AudioDriver.h:733
ES7210 & driver()
Definition AudioDriver.h:746
bool deinit()
Definition AudioDriver.h:757
bool init(codec_config_t codec_cfg)
Definition AudioDriver.h:752
AudioDriverES7210Class(uint16_t deviceAddr=ES7210_AD1_AD0_00 > > 1)
Definition AudioDriver.h:735
ES7210 es7210
Definition AudioDriver.h:749
bool isInputVolumeSupported()
Determines if setInputVolume() is supported.
Definition AudioDriver.h:745
bool setMute(bool mute)
Mutes all output lines.
Definition AudioDriver.h:738
int getVolume()
Determines the actual volume (range: 0-100)
Definition AudioDriver.h:743
bool setInputVolume(int volume)
Defines the input volume (range: 0-100) if supported.
Definition AudioDriver.h:744
bool setVolume(int volume)
Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.
Definition AudioDriver.h:739
bool configInterface(codec_mode_t mode, I2SDefinition iface)
Definition AudioDriver.h:762
bool controlState(codec_mode_t mode)
Definition AudioDriver.h:759
int volume
Definition AudioDriver.h:750
Driver API for Lyrat ES7243 codec chip.
Definition AudioDriver.h:772
AudioDriverES7243Class(uint16_t deviceAddr=0x13)
Definition AudioDriver.h:774
bool deinit()
Definition AudioDriver.h:798
bool init(codec_config_t codec_cfg)
Definition AudioDriver.h:793
bool setMute(bool mute)
Mutes all output lines.
Definition AudioDriver.h:777
ES7243 & driver()
Definition AudioDriver.h:788
int getVolume()
Determines the actual volume (range: 0-100)
Definition AudioDriver.h:783
ES7243 es7243
Definition AudioDriver.h:791
bool setVolume(int volume)
Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.
Definition AudioDriver.h:780
bool configInterface(codec_mode_t mode, I2SDefinition iface)
Definition AudioDriver.h:803
bool controlState(codec_mode_t mode)
Definition AudioDriver.h:800
Driver API for ES7243e codec chip.
Definition AudioDriver.h:814
AudioDriverES7243eClass(uint16_t deviceAddr=0x10)
Definition AudioDriver.h:816
bool deinit()
Definition AudioDriver.h:843
bool init(codec_config_t codec_cfg)
Definition AudioDriver.h:838
ES7243E & driver()
Definition AudioDriver.h:832
ES7243E es7243e
Definition AudioDriver.h:835
bool setMute(bool mute)
Mutes all output lines.
Definition AudioDriver.h:819
int getVolume()
Determines the actual volume (range: 0-100)
Definition AudioDriver.h:827
bool setVolume(int volume)
Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.
Definition AudioDriver.h:822
bool configInterface(codec_mode_t mode, I2SDefinition iface)
Definition AudioDriver.h:848
bool controlState(codec_mode_t mode)
Definition AudioDriver.h:845
int volume
Definition AudioDriver.h:836
Driver API for ES8156 codec chip.
Definition AudioDriver.h:858
AudioDriverES8156Class(uint16_t deviceAddr=ES8156::ES8156_ADDR)
Definition AudioDriver.h:860
ES8156 & driver()
Definition AudioDriver.h:876
bool deinit()
Definition AudioDriver.h:886
bool init(codec_config_t codec_cfg)
Definition AudioDriver.h:881
bool setMute(bool mute)
Mutes all output lines.
Definition AudioDriver.h:863
int getVolume()
Determines the actual volume (range: 0-100)
Definition AudioDriver.h:871
ES8156 es8156
Definition AudioDriver.h:879
bool setVolume(int volume)
Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.
Definition AudioDriver.h:866
bool configInterface(codec_mode_t mode, I2SDefinition iface)
Definition AudioDriver.h:891
bool controlState(codec_mode_t mode)
Definition AudioDriver.h:888
Driver API for Lyrat ES8311 codec chip.
Definition AudioDriver.h:981
int master_clock_source
Definition AudioDriver.h:1019
bool deinit()
Definition AudioDriver.h:1034
bool init(codec_config_t codec_cfg)
Definition AudioDriver.h:1021
ES8311 es8311
Definition AudioDriver.h:1018
ES8311 & driver()
Definition AudioDriver.h:1015
void setMasterClockSource(int source)
Definition AudioDriver.h:1013
bool isInputVolumeSupported()
Determines if setInputVolume() is supported.
Definition AudioDriver.h:1010
bool setMute(bool mute)
Mutes all output lines.
Definition AudioDriver.h:986
int getVolume()
Determines the actual volume (range: 0-100)
Definition AudioDriver.h:991
bool setInputVolume(int volume) override
Defines the input volume (range: 0-100) if supported.
Definition AudioDriver.h:997
bool setVolume(int volume)
Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.
Definition AudioDriver.h:987
AudioDriverES8311Class(uint16_t deviceAddr=ES8311::ES8311_ADDR)
Definition AudioDriver.h:983
bool configInterface(codec_mode_t mode, I2SDefinition iface)
Definition AudioDriver.h:1039
bool controlState(codec_mode_t mode)
Definition AudioDriver.h:1036
Driver API for ES8374 codec chip.
Definition AudioDriver.h:1049
ES8374 & driver()
Provides access to the ES8374 driver.
Definition AudioDriver.h:1066
AudioDriverES8374Class(uint16_t deviceAddr=ES8374::ES8374_ADDR)
Definition AudioDriver.h:1051
bool deinit()
Definition AudioDriver.h:1077
bool init(codec_config_t codec_cfg)
Definition AudioDriver.h:1071
ES8374 es8374
Definition AudioDriver.h:1069
bool setMute(bool mute)
Mutes all output lines.
Definition AudioDriver.h:1054
int getVolume()
Determines the actual volume (range: 0-100)
Definition AudioDriver.h:1059
bool setVolume(int volume)
Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.
Definition AudioDriver.h:1055
bool configInterface(codec_mode_t mode, I2SDefinition iface)
Definition AudioDriver.h:1082
bool controlState(codec_mode_t mode)
Definition AudioDriver.h:1079
Driver API for ES8388 codec chip.
Definition AudioDriver.h:1092
int getVolumeHack()
Definition AudioDriver.h:1182
ES8388 & driver()
Provides access to the ES8388 driver.
Definition AudioDriver.h:1134
bool deinit()
Definition AudioDriver.h:1194
int volume_hack
Definition AudioDriver.h:1187
bool init(codec_config_t codec_cfg)
Definition AudioDriver.h:1189
bool setMute(bool mute, int line)
Mute individual lines: only supported for some rare DACs.
Definition AudioDriver.h:1105
bool line_active[2]
Definition AudioDriver.h:1186
ES8388 es8388
Definition AudioDriver.h:1185
bool isInputVolumeSupported()
Determines if setInputVolume() is supported.
Definition AudioDriver.h:1176
bool setMute(bool mute)
Mutes all output lines.
Definition AudioDriver.h:1099
void setVolumeHack(int volume_hack)
Definition AudioDriver.h:1178
int getVolume()
Determines the actual volume (range: 0-100)
Definition AudioDriver.h:1127
bool setMicrophoneGain(es_mic_gain_t gain)
Definition AudioDriver.h:1172
AudioDriverES8388Class(uint16_t deviceAddr=ES8388::ES8388_ADDR, int volumeHack=1)
Definition AudioDriver.h:1094
bool setInputVolume(int volume)
Defines the input volume (range: 0-100) if supported.
Definition AudioDriver.h:1136
bool setVolume(int volume)
Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.
Definition AudioDriver.h:1123
bool configInterface(codec_mode_t mode, I2SDefinition iface)
Definition AudioDriver.h:1199
bool controlState(codec_mode_t mode)
Definition AudioDriver.h:1196
Abstract Driver API for codec chips.
Definition AudioDriver.h:182
virtual bool setMute(bool enable)=0
Mutes all output lines.
virtual bool isInputVolumeSupported()
Determines if setInputVolume() is supported.
Definition AudioDriver.h:250
virtual bool end(void)
Ends the processing: shut down dac and adc.
Definition AudioDriver.h:232
int i2c_default_address
Definition AudioDriver.h:329
void setPins(DriverDeviceInfo &pins)
Definition AudioDriver.h:254
virtual bool setInputVolume(int volume)
Defines the input volume (range: 0-100) if supported.
Definition AudioDriver.h:246
bool setPAPower(bool enable)
Sets the PA Power pin to active or inactive.
Definition AudioDriver.h:257
virtual bool isVolumeSupported()
Determines if setVolume() is suppored.
Definition AudioDriver.h:248
API_GPIO & getGPIO()
Definition AudioDriver.h:321
CodecConfig codec_cfg
Definition AudioDriver.h:327
virtual bool setVolume(int volume)=0
Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.
void setupI2CAddress()
If no address is defined in the pins we provide it here.
Definition AudioDriver.h:311
virtual bool setI2CAddress(uint16_t adr)
Defines the i2c address.
Definition AudioDriver.h:279
virtual bool setMute(bool mute, int line)
Mute individual lines: only supported for some rare DACs.
Definition AudioDriver.h:236
virtual int getI2CAddress()
Provides the i2c address.
Definition AudioDriver.h:298
virtual i2c_bus_handle_t getI2C()
Determine the TwoWire object from the I2C config or use Wire.
Definition AudioDriver.h:336
int mapVolume(int x, int in_min, int in_max, int out_min, int out_max)
Definition AudioDriver.h:331
virtual bool deinit()
Definition AudioDriver.h:347
virtual bool setConfig(CodecConfig codecCfg)
changes the configuration
Definition AudioDriver.h:212
virtual DriverDeviceInfo & pins()
Provides the pin information.
Definition AudioDriver.h:252
int limitValue(int volume, int min=0, int max=100)
Definition AudioDriver.h:356
virtual bool controlState(codec_mode_t mode)
Definition AudioDriver.h:348
virtual int getVolume()=0
Determines the actual volume (range: 0-100)
virtual bool begin(CodecConfig codecCfg, DriverDeviceInfo &pins)
Starts the processing.
Definition AudioDriver.h:185
DriverDeviceInfo * p_pins
Definition AudioDriver.h:328
virtual bool init(codec_config_t codec_cfg)
Definition AudioDriver.h:346
virtual bool configInterface(codec_mode_t mode, I2SDefinition iface)
Definition AudioDriver.h:349
Driver API for Lyrat Mini with a ES8311 and a ES7243 codec chip.
Definition AudioDriver.h:1766
int getVolume() override
Determines the actual volume (range: 0-100)
Definition AudioDriver.h:1810
bool end(void)
Ends the processing: shut down dac and adc.
Definition AudioDriver.h:1802
bool isInputVolumeSupported() override
Determines if setInputVolume() is supported.
Definition AudioDriver.h:1813
AudioDriverES7243Class adc
Definition AudioDriver.h:1817
AudioDriverES8311Class dac
Definition AudioDriver.h:1816
bool setMute(bool enable) override
Mutes all output lines.
Definition AudioDriver.h:1808
bool begin(CodecConfig codecCfg, DriverDeviceInfo &pins)
Starts the processing.
Definition AudioDriver.h:1768
bool setInputVolume(int volume) override
Defines the input volume (range: 0-100) if supported.
Definition AudioDriver.h:1811
bool setVolume(int volume) override
Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.
Definition AudioDriver.h:1809
int getInputVolume()
Definition AudioDriver.h:1812
Definition AudioDriver.h:1955
int getVolume() override
Determines the actual volume (range: 0-100)
Definition AudioDriver.h:2030
~AudioDriverNAU8325Class()
Definition AudioDriver.h:1963
bool setMute(bool enable) override
Mutes all output lines.
Definition AudioDriver.h:2016
NAU8325 * nau8325
Definition AudioDriver.h:1961
bool setVolume(int volume) override
Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.
Definition AudioDriver.h:2022
bool begin(CodecConfig cfg, DriverDeviceInfo &pins) override
Starts the processing.
Definition AudioDriver.h:1967
bool end() override
Ends the processing: shut down dac and adc.
Definition AudioDriver.h:2009
AudioDriverNAU8325Class(uint16_t deviceAddr=NAU8325::NAU8325_I2C_ADDR)
Definition AudioDriver.h:1957
Driver API for the CS43l22 codec chip on 0x94 (0x4A<<1)
Definition AudioDriver.h:1678
PCM3168 driver
Definition AudioDriver.h:1696
bool deinit()
Definition AudioDriver.h:1703
bool init(codec_config_t codec_cfg)
Definition AudioDriver.h:1698
bool setMute(bool mute, int line)
Mute individual lines: only supported for some rare DACs.
Definition AudioDriver.h:1686
bool setVolume(int vol)
Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.
Definition AudioDriver.h:1688
bool setMute(bool mute)
Mutes all output lines.
Definition AudioDriver.h:1684
int getVolume()
Determines the actual volume (range: 0-100)
Definition AudioDriver.h:1692
AudioDriverPCM3168Class(uint16_t deviceAddr=0x44)
Definition AudioDriver.h:1680
bool configInterface(codec_mode_t mode, I2SDefinition iface)
Definition AudioDriver.h:1705
bool controlState(codec_mode_t mode)
Definition AudioDriver.h:1704
int volume
Definition AudioDriver.h:1695
Driver API for SGTL5000 codec chip.
Definition AudioDriver.h:941
SGTL5000 sgtl5000
Definition AudioDriver.h:959
bool deinit()
Definition AudioDriver.h:966
bool init(codec_config_t codec_cfg)
Definition AudioDriver.h:961
SGTL5000 & driver()
Definition AudioDriver.h:956
bool setMute(bool mute)
Mutes all output lines.
Definition AudioDriver.h:946
int getVolume()
Determines the actual volume (range: 0-100)
Definition AudioDriver.h:951
AudioDriverSGTL5000Class(uint16_t deviceAddr=SGTL5000_ADDR)
Definition AudioDriver.h:943
bool setVolume(int volume)
Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.
Definition AudioDriver.h:947
bool configInterface(codec_mode_t mode, I2SDefinition iface)
Definition AudioDriver.h:971
bool controlState(codec_mode_t mode)
Definition AudioDriver.h:968
Driver API for TAS5805M codec chip.
Definition AudioDriver.h:1209
TAS5805M tas5805m
Definition AudioDriver.h:1229
AudioDriverTAS5805MClass(uint16_t deviceAddr=TAS5805M::TAS5805M_ADDR)
Definition AudioDriver.h:1211
bool deinit()
Definition AudioDriver.h:1236
bool init(codec_config_t codec_cfg)
Definition AudioDriver.h:1231
bool setMute(bool mute)
Mutes all output lines.
Definition AudioDriver.h:1214
int getVolume()
Determines the actual volume (range: 0-100)
Definition AudioDriver.h:1219
bool setVolume(int volume)
Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.
Definition AudioDriver.h:1215
TAS5805M & driver()
Provides access to the TAS5805M driver.
Definition AudioDriver.h:1226
Driver for the TI TLV320AIC3104. It might also work on other AIC310x chips.
Definition AudioDriver.h:2124
uint32_t mclk
Definition AudioDriver.h:2133
bool setMclk(uint32_t _mclk)
Definition AudioDriver.h:2127
bool configInterface(codec_mode_t mode, I2SDefinition iface) override
Definition AudioDriver.h:2134
Driver API for WM8731 codec chip.
Definition AudioDriver.h:901
AudioDriverWM8731Class(uint16_t deviceAddr=WM8731_ADDR)
Definition AudioDriver.h:903
bool deinit()
Definition AudioDriver.h:926
bool init(codec_config_t codec_cfg)
Definition AudioDriver.h:921
bool setMute(bool mute)
Mutes all output lines.
Definition AudioDriver.h:906
WM8731 wm8731
Definition AudioDriver.h:919
int getVolume()
Determines the actual volume (range: 0-100)
Definition AudioDriver.h:911
bool setVolume(int volume)
Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.
Definition AudioDriver.h:907
bool configInterface(codec_mode_t mode, I2SDefinition iface)
Definition AudioDriver.h:931
bool controlState(codec_mode_t mode)
Definition AudioDriver.h:928
WM8731 & driver()
Definition AudioDriver.h:916
Driver API for WM8990 codec chip.
Definition AudioDriver.h:1244
int volume_in
Definition AudioDriver.h:1328
wm8960_word_length_t wordLength(int bits)
Definition AudioDriver.h:1411
bool end(void)
Ends the processing: shut down dac and adc.
Definition AudioDriver.h:1284
void setI2CRetryCount(int cnt)
Configuration: define retry count (default : 0)
Definition AudioDriver.h:1316
void setMclkHz(uint32_t hz)
Configuration: define master clock frequency (default: 0)
Definition AudioDriver.h:1322
bool isVolumeSupported()
Determines if setVolume() is suppored.
Definition AudioDriver.h:1311
bool vs1053_enable_pll
Definition AudioDriver.h:1332
WM8960 & driver()
Provides access to the WM8960 driver.
Definition AudioDriver.h:1251
int i2c_retry_count
Definition AudioDriver.h:1330
virtual bool setConfig(CodecConfig codecCfg)
changes the configuration
Definition AudioDriver.h:1289
bool setMute(bool enable)
Mutes all output lines.
Definition AudioDriver.h:1294
void setEnablePLL(bool active)
Configuration: enable/disable PLL (active by default)
Definition AudioDriver.h:1319
wm8960_mode_t modeMasterSlave(bool is_master)
if microcontroller is master then module is slave
Definition AudioDriver.h:1428
bool isInputVolumeSupported()
Determines if setInputVolume() is supported.
Definition AudioDriver.h:1313
int getFeatures(CodecConfig cfg)
Definition AudioDriver.h:1334
void dumpRegisters()
Definition AudioDriver.h:1324
int getVolume()
Determines the actual volume (range: 0-100)
Definition AudioDriver.h:1304
int volume_out
Definition AudioDriver.h:1329
AudioDriverWM8960Class(uint16_t deviceAddr=WM8960_I2C_ADDRESS)
Definition AudioDriver.h:1246
bool configure_clocking()
Definition AudioDriver.h:1367
bool begin(CodecConfig codecCfg, DriverDeviceInfo &pins)
Starts the processing.
Definition AudioDriver.h:1253
bool setInputVolume(int volume)
Defines the input volume (range: 0-100) if supported.
Definition AudioDriver.h:1306
bool setVolume(int volume)
Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.
Definition AudioDriver.h:1297
uint32_t vs1053_mclk_hz
Definition AudioDriver.h:1331
wm8960_adc_dac_sample_rate_t sampleRate(int rate)
Definition AudioDriver.h:1383
WM8960 wm8960
Definition AudioDriver.h:1327
Driver API for the wm8978 codec chip.
Definition AudioDriver.h:1438
int getVolume() override
Determines the actual volume (range: 0-100)
Definition AudioDriver.h:1526
bool isInputVolumeSupported() override
Determines if setInputVolume() is supported.
Definition AudioDriver.h:1538
bool setMute(bool mute, int line) override
Mute line 0 = speaker, line 1 = headphones.
Definition AudioDriver.h:1491
bool setMute(bool mute) override
Mutes all output lines.
Definition AudioDriver.h:1506
bool isVolumeSupported() override
Determines if setVolume() is suppored.
Definition AudioDriver.h:1536
int toI2S(i2s_format_t fmt)
Definition AudioDriver.h:1548
bool begin(CodecConfig codecCfg, DriverDeviceInfo &pins) override
Starts the processing.
Definition AudioDriver.h:1444
WM8978 & driver()
Definition AudioDriver.h:1540
WM8978 wm8078
Definition AudioDriver.h:1543
bool setInputVolume(int volume) override
Defines the input volume (range: 0-100) if supported.
Definition AudioDriver.h:1528
bool setVolume(int volume) override
Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.
Definition AudioDriver.h:1518
AudioDriverWM8978Class(uint16_t deviceAddr=WM8978::WM8978_ADDR)
Definition AudioDriver.h:1440
bool end() override
Ends the processing: shut down dac and adc.
Definition AudioDriver.h:1484
int volume
Definition AudioDriver.h:1544
bool setConfig(CodecConfig codecCfg) override
changes the configuration
Definition AudioDriver.h:1461
int toBits(sample_bits_t bits)
Definition AudioDriver.h:1565
Driver API for the wm8994 codec chip.
Definition AudioDriver.h:1587
WM8994 wm8994
Definition AudioDriver.h:1649
bool deinit()
Definition AudioDriver.h:1651
bool setMute(bool mute)
Mutes all output lines.
Definition AudioDriver.h:1629
int getVolume()
Determines the actual volume (range: 0-100)
Definition AudioDriver.h:1644
AudioDriverWM8994Class(uint16_t deviceAddr=WM8994::WM8994_ADDR)
Definition AudioDriver.h:1589
virtual bool begin(CodecConfig codecCfg, DriverDeviceInfo &pins)
Starts the processing.
Definition AudioDriver.h:1596
WM8994 & driver()
Provides access to the WM8994 driver.
Definition AudioDriver.h:1594
bool setVolume(int volume)
Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.
Definition AudioDriver.h:1634
bool volume_set_in_begin
Definition AudioDriver.h:1648
int volume
Definition AudioDriver.h:1647
uint16_t getOutput(output_device_t output_device)
Definition AudioDriver.h:1658
Generic Driver API that wraps a codec driver class which has been ported from the Zephyr RTOS (see Co...
Definition AudioDriver.h:1905
int getVolume() override
Determines the actual volume (range: 0-100)
Definition AudioDriver.h:1921
bool isInputVolumeSupported() override
Determines if setInputVolume() is supported.
Definition AudioDriver.h:1929
bool init(codec_config_t codecCfg) override
Definition AudioDriver.h:1937
bool setMute(bool enable) override
Mutes all output lines.
Definition AudioDriver.h:1914
bool deinit() override
Stops the input and output and (if supported) shuts down the codec.
Definition AudioDriver.h:1943
AudioDriverZephyrT(uint8_t i2cAddress=DefaultI2CAddress)
Definition AudioDriver.h:1907
int volume_value
Definition AudioDriver.h:1935
bool controlState(codec_mode_t mode) override
Definition AudioDriver.h:1944
bool configInterface(codec_mode_t mode, I2SDefinition iface) override
Configures the codec (sample rate, bits per sample) for the given I2S setup.
Definition AudioDriver.h:1946
bool setInputVolume(int volume) override
Defines the input volume (range: 0-100) if supported.
Definition AudioDriver.h:1923
bool setVolume(int volume) override
Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.
Definition AudioDriver.h:1916
int getInputVolume()
Definition AudioDriver.h:1927
T zephyr_driver
Definition AudioDriver.h:1934
T & driver()
Provides access to the wrapped Zephyr driver instance.
Definition AudioDriver.h:1912
The CS42448 CODEC from Cirrus Logic provides six multi-bit ana- log-to-digital and eight multi-bit di...
Definition CS42448.h:38
bool begin(codec_config_t codecCfg, i2c_bus_handle_t handle, int i2cAddress=-1)
Definition CS42448.h:143
bool setVolumeDAC(uint8_t vol)
Definition CS42448.h:257
bool setMuteDAC(uint8_t line, bool mute)
Definition CS42448.h:230
bool setMute(bool mute)
Definition CS42448.h:255
bool setVolumeADC(int8_t volume)
Set volume in 0.5 dB increments. -128 .. 127 is -64dB .. 24dB; 0 = 0dB.
Definition CS42448.h:282
bool end()
Mute ADC and DAC and then power down.
Definition CS42448.h:174
bool setSampleRate(int rate)
Single-Speed Mode (SSM) supports input sample rates up to 50 kHz and uses a 128x oversampling ratio....
Definition CS42448.h:189
Header-only driver class for the CS42L51 codec chip.
Definition CS42L51.h:149
uint32_t stop(uint32_t cmd)
Definition CS42L51.h:387
uint32_t play()
Start the audio Codec play feature.
Definition CS42L51.h:304
uint32_t init(uint32_t inputDevice, uint32_t outputDevice, uint8_t volume, uint32_t audioFreq)
Definition CS42L51.h:166
uint32_t resume()
Resumes playing on the audio codec.
Definition CS42L51.h:382
uint32_t setVolume(uint8_t volume)
Definition CS42L51.h:422
uint32_t pause()
Pauses playing on the audio codec.
Definition CS42L51.h:379
void setWire(i2c_bus_handle_t handle)
Defines the I2C bus instance to be used.
Definition CS42L51.h:154
uint32_t reset()
Resets cs42l51 registers.
Definition CS42L51.h:471
void setAddress(uint16_t addr)
Defines the I2C device address.
Definition CS42L51.h:157
Header-only driver class for the CS43L22 codec chip.
Definition CS43L22.h:55
uint32_t stop(uint32_t cmd)
Definition CS43L22.h:277
uint32_t init(uint16_t outputDevice, uint8_t volume, uint32_t audioFreq)
Definition CS43L22.h:138
uint32_t readID()
Get the CS43L22 ID.
Definition CS43L22.h:216
uint32_t resume()
Resumes playing on the audio codec.
Definition CS43L22.h:259
static constexpr uint8_t OUTPUT_DEVICE_BOTH
Definition CS43L22.h:70
uint32_t setVolume(uint8_t volume)
Definition CS43L22.h:296
uint32_t pause()
Pauses playing on the audio codec.
Definition CS43L22.h:245
void setWire(i2c_bus_handle_t handle)
Defines the I2C bus instance to be used.
Definition CS43L22.h:129
static constexpr uint8_t OUTPUT_DEVICE_SPEAKER
Definition CS43L22.h:68
static constexpr int AUDIO_MUTE_ON
Definition CS43L22.h:79
uint32_t reset()
Resets cs43l22 registers.
Definition CS43L22.h:378
uint32_t play(uint16_t *pBuffer, uint16_t size)
Definition CS43L22.h:225
static constexpr uint8_t OUTPUT_DEVICE_HEADPHONE
Definition CS43L22.h:69
void setAddress(uint16_t addr)
Defines the I2C device address.
Definition CS43L22.h:132
I2S configuration and definition of input and output with default values.
Definition AudioDriver.h:24
CodecConfig()
setup default values
Definition AudioDriver.h:27
bool setBitsNumeric(int bits)
Sets the bits per sample with a numeric value.
Definition AudioDriver.h:62
bool sdmmc_active
Definition AudioDriver.h:173
bool setChannelsNumeric(int channels)
Defines the number of channels.
Definition AudioDriver.h:99
int getRateNumeric()
Get the sample rate as number.
Definition AudioDriver.h:85
codec_mode_t get_mode()
Determines the codec_mode_t dynamically based on the input and output.
Definition AudioDriver.h:144
int getChannelsNumeric()
Returns the number of channels as number.
Definition AudioDriver.h:96
bool sd_active
Definition AudioDriver.h:172
bool equalsExRate(CodecConfig alt)
Compare all attributes but ignore sample rate.
Definition AudioDriver.h:39
int setRateNumeric(int requestedRate)
Sets the sample rate as number: returns the effectively set rate.
Definition AudioDriver.h:121
int getBitsNumeric()
Returns bits per sample as number.
Definition AudioDriver.h:47
All pins for i2s, spi, i2c and other pins.
Definition DriverDeviceInfo.h:20
GpioPin getPinID(PinFunction function, int pos=0)
Definition DriverDeviceInfo.h:149
API_GPIO & getGPIO()
Definition DriverDeviceInfo.h:264
PinLogic getPinLogic(PinFunction function, int pos=0)
Definition DriverDeviceInfo.h:155
bool setI2C(InfoI2C pin)
Updates the I2C pin information using the function as key.
Definition DriverDeviceInfo.h:84
virtual bool begin()
Sets up all pins e.g. by calling pinMode()
Definition DriverDeviceInfo.h:193
audio_driver_local::Optional< InfoI2C > getI2CPins(PinFunction function) override
Finds the I2C pin info with the help of the function.
Definition DriverDeviceInfo.h:162
void setSDMMCActive(bool active)
Defines if SPI for SD should be started (by default true)
Definition DriverDeviceInfo.h:243
void setSPIActiveForSD(bool active)
Defines if SPI for SD should be started (by default true)
Definition DriverDeviceInfo.h:235
Header-only driver class for the ES7210 ADC chip.
Definition ES7210.h:157
error_t deinit()
Deinitialize ES7210 ADC chip.
Definition ES7210.h:273
error_t ctrlStateActive(codec_mode_t mode, bool ctrl_state_active)
Control ES7210 ADC chip.
Definition ES7210.h:285
void setAddress(int addr)
Defines the I2C device address.
Definition ES7210.h:204
error_t configI2S(codec_mode_t mode, I2SDefinition *iface)
Configure ES7210 ADC mode and I2S interface.
Definition ES7210.h:276
error_t setMute(bool enable)
Set ES7210 ADC mute status.
Definition ES7210.h:403
void setWire(i2c_bus_handle_t handle)
Defines the I2C bus instance to be used.
Definition ES7210.h:201
error_t setVolume(int volume)
Set volume.
Definition ES7210.h:396
error_t init(codec_config_t *codec_cfg)
Initialize ES7210 ADC chip.
Definition ES7210.h:207
Header-only driver class for the ES7243E ADC chip.
Definition ES7243E.h:43
error_t ctrlStateActive(codec_mode_t mode, bool ctrl_state_active)
Control ES7243E adc chip.
Definition ES7243E.h:107
void setAddress(int addr)
Defines the I2C device address.
Definition ES7243E.h:51
error_t deinit(void)
Deinitialize ES7243E adc chip.
Definition ES7243E.h:104
error_t configI2S(codec_mode_t mode, I2SDefinition *iface)
Configure ES7243E adc mode and I2S interface.
Definition ES7243E.h:139
void setWire(i2c_bus_handle_t handle)
Defines the I2C bus instance to be used.
Definition ES7243E.h:48
error_t setVoiceVolume(int volume)
Set adc gain (value of gain 0~100)
Definition ES7243E.h:144
error_t getVoiceVolume(int *volume)
Get adc gain (value of gain 0~100)
Definition ES7243E.h:147
error_t init(codec_config_t *codec_cfg)
Initialize ES7243E adc chip.
Definition ES7243E.h:54
Header-only driver class for the ES7243 ADC chip.
Definition ES7243.h:46
error_t ctrlStateActive(codec_mode_t mode, bool ctrl_state_active)
Control ES7243 adc chip.
Definition ES7243.h:81
void setAddress(int addr)
Defines the I2C device address.
Definition ES7243.h:55
error_t deinit(void)
Deinitialize ES7243 adc chip.
Definition ES7243.h:78
error_t configI2S(codec_mode_t mode, I2SDefinition *iface)
Configure ES7243 adc mode and I2S interface.
Definition ES7243.h:86
error_t setVoiceMute(bool mute)
Set mute.
Definition ES7243.h:129
void setWire(i2c_bus_handle_t handle)
Defines the I2C bus instance to be used.
Definition ES7243.h:52
error_t setVoiceVolume(int volume)
Set adc gain (value of gain 0~100)
Definition ES7243.h:141
error_t getVoiceVolume(int *volume)
Get adc gain (value of gain 0~100)
Definition ES7243.h:183
error_t init(codec_config_t *codec_cfg)
Initialize ES7243 adc chip.
Definition ES7243.h:61
Header-only driver class for the ES8156 DAC chip.
Definition ES8156.h:43
error_t ctrlStateActive(codec_mode_t mode, bool ctrl_state_active)
Control ES8156 codec chip.
Definition ES8156.h:129
void setAddress(int addr)
Defines the I2C device address.
Definition ES8156.h:87
error_t init(codec_config_t *cfg)
Initialize ES8156 codec chip.
Definition ES8156.h:90
error_t deinit(void)
Deinitialize ES8156 codec chip.
Definition ES8156.h:122
error_t setVoiceMute(bool enable)
Configure ES8156 DAC mute or not.
Definition ES8156.h:146
error_t configI2S(codec_mode_t mode, I2SDefinition *iface)
Configure ES8156 codec mode and I2S interface.
Definition ES8156.h:141
void setWire(i2c_bus_handle_t handle)
Defines the I2C bus instance to be used.
Definition ES8156.h:84
static constexpr int ES8156_ADDR
Definition ES8156.h:45
error_t setVoiceVolume(int volume)
Set voice volume.
Definition ES8156.h:163
error_t getVoiceVolume(int *volume)
Get voice volume (0~100)
Definition ES8156.h:176
Header-only driver class for the ES8311 codec chip.
Definition ES8311.h:247
error_t deinit()
Deinitialize ES8311 codec chip.
Definition ES8311.h:508
error_t ctrlStateActive(codec_mode_t mode, bool ctrl_state_active)
Control ES8311 codec chip.
Definition ES8311.h:519
void setAddress(int addr)
Defines the I2C device address.
Definition ES8311.h:304
error_t setMicGain(es8311_mic_gain_t gain_db)
Set ES8311 mic gain.
Definition ES8311.h:618
static constexpr int ES8311_ADDR
Definition ES8311.h:249
error_t setVoiceMute(bool enable)
Configure ES8311 DAC mute or not.
Definition ES8311.h:597
void setMclkSrc(int8_t src)
Defines the source of the master clock (FROM_MCLK_PIN or FROM_SCLK_PIN)
Definition ES8311.h:309
error_t configI2S(codec_mode_t mode, I2SDefinition *iface)
Configure ES8311 codec mode and I2S interface.
Definition ES8311.h:511
void setWire(i2c_bus_handle_t handle)
Defines the I2C bus instance to be used.
Definition ES8311.h:301
error_t setVoiceVolume(int volume)
Set voice volume (0~100)
Definition ES8311.h:553
error_t getVoiceVolume(int *volume)
Get voice volume (0~100)
Definition ES8311.h:574
error_t init(codec_config_t *codec_cfg)
Initialize ES8311 codec chip.
Definition ES8311.h:313
Header-only driver class for the ES8374 codec chip.
Definition ES8374.h:51
static constexpr int ES8374_ADDR
Definition ES8374.h:53
error_t ctrlStateActive(codec_mode_t mode, bool ctrl_state_active)
Control ES8374 codec chip.
Definition ES8374.h:149
error_t init(codec_config_t *cfg, codec_mode_t codec_mode)
Initialize ES8374 codec chip.
Definition ES8374.h:117
void setAddress(int addr)
Defines the I2C device address.
Definition ES8374.h:60
error_t deinit(void)
Deinitialize ES8374 codec chip.
Definition ES8374.h:143
error_t setVoiceMute(bool enable)
Mute or unmute ES8374 DAC.
Definition ES8374.h:74
error_t configI2S(codec_mode_t mode, I2SDefinition *iface)
Configure ES8374 codec mode and I2S interface.
Definition ES8374.h:101
void setWire(i2c_bus_handle_t handle)
Defines the I2C bus instance to be used.
Definition ES8374.h:57
error_t setVoiceVolume(int volume)
Set voice volume (0~100)
Definition ES8374.h:180
error_t getVoiceVolume(int *volume)
Get voice volume (0~100)
Definition ES8374.h:197
Header-only driver class for the ES8388 codec chip.
Definition ES8388.h:64
error_t ctrlStateActive(codec_mode_t mode, bool ctrl_state_active)
Control ES8388 codec chip.
Definition ES8388.h:460
void setAddress(int addr)
Defines the I2C device address.
Definition ES8388.h:126
error_t deinit(void)
Deinitialize ES8388 codec chip.
Definition ES8388.h:448
error_t setVoiceMute(bool enable)
Configure ES8388 DAC mute or not.
Definition ES8388.h:147
static constexpr int ES8388_ADDR
Definition ES8388.h:66
error_t configI2S(codec_mode_t mode, I2SDefinition *iface)
Configure ES8388 codec mode and I2S interface.
Definition ES8388.h:328
void setVolumeHack(int volumeHack)
Defines the volume hack to use (see AI_THINKER_ES8388_VOLUME_HACK)
Definition ES8388.h:131
void setWire(i2c_bus_handle_t handle)
Defines the I2C bus instance to be used.
Definition ES8388.h:123
error_t configOutputDevice(output_device_t output_device)
Set ES8388 dac output mode.
Definition ES8388.h:225
error_t init(codec_config_t *cfg, int volumeHack)
Initialize ES8388 codec chip.
Definition ES8388.h:345
error_t setVoiceVolume(int volume)
Set voice volume.
Definition ES8388.h:184
error_t setMicGain(es_mic_gain_t gain)
Set ES8388 mic gain.
Definition ES8388.h:171
error_t getVoiceVolume(int *volume)
Get voice volume (0~100)
Definition ES8388.h:198
Header-only driver for the Nuvoton NAU8325 Class-D amplifier with DAC.
Definition NAU8325.h:63
void powerOff()
Powers off the analog and DAC blocks after soft-muting the output.
Definition NAU8325.h:544
static constexpr uint16_t NAU8325_I2C_ADDR
Definition NAU8325.h:65
void setVolume(uint8_t left, uint8_t right)
Sets the DAC digital volume for left and right channels (0x00–0xFE, 0xFF = mute)
Definition NAU8325.h:571
void softMute(bool enable)
Enables or disables soft mute on the DAC output.
Definition NAU8325.h:518
bool begin(uint32_t fs, uint8_t bits_per_sample, uint16_t ratio)
Initializes the codec with explicit sample rate, bit depth, and MCLK/FS ratio.
Definition NAU8325.h:446
Dummy Driver which does nothing.
Definition AudioDriver.h:369
virtual bool isInputVolumeSupported()
Determines if setInputVolume() is supported.
Definition AudioDriver.h:382
virtual bool end(void)
Ends the processing: shut down dac and adc.
Definition AudioDriver.h:376
virtual bool setInputVolume(int volume)
Defines the input volume (range: 0-100) if supported.
Definition AudioDriver.h:380
virtual bool isVolumeSupported()
Determines if setVolume() is suppored.
Definition AudioDriver.h:381
virtual int getVolume()
Determines the actual volume (range: 0-100)
Definition AudioDriver.h:379
virtual bool begin(CodecConfig codecCfg, DriverDeviceInfo &pins)
Starts the processing.
Definition AudioDriver.h:371
virtual bool setMute(bool enable)
Mutes all output lines.
Definition AudioDriver.h:377
virtual bool setVolume(int volume)
Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.
Definition AudioDriver.h:378
bool end(void)
Definition PCM3168.h:90
bool setMute(int channel, bool mute)
Definition PCM3168.h:95
bool begin(FMT fmt=I2SHighSpeedTDM24bit)
Definition PCM3168.h:84
void setWire(i2c_bus_handle_t w)
Definition PCM3168.h:82
void setAddress(uint8_t addr)
Definition PCM3168.h:80
bool setVolume(float level)
Definition PCM3168.h:110
FMT
Definition PCM3168.h:65
@ I2SHighSpeedTDM24bit
Definition PCM3168.h:74
@ LeftTDM24bit
Definition PCM3168.h:73
@ LeftDSP24bit
Definition PCM3168.h:71
@ I2S24bit
Definition PCM3168.h:66
@ I2STDM24bit
Definition PCM3168.h:72
@ Right24bit
Definition PCM3168.h:68
@ Right16bit
Definition PCM3168.h:69
@ Left24bit
Definition PCM3168.h:67
Header-only driver class for the SGTL5000 codec chip.
Definition SGTL5000.h:28
error_t ctrlStateActive(codec_mode_t mode, bool ctrl_state_active)
Activate or mute the codec.
Definition SGTL5000.h:140
void setAddress(int addr)
Defines the I2C device address.
Definition SGTL5000.h:80
error_t init(codec_config_t *cfg)
Initialize the SGTL5000 codec chip.
Definition SGTL5000.h:83
error_t deinit(void)
Deinitialize the SGTL5000 codec chip.
Definition SGTL5000.h:130
error_t setVoiceMute(bool enable)
Mute / unmute the headphone and line outputs.
Definition SGTL5000.h:190
error_t configI2S(codec_mode_t mode, I2SDefinition *iface)
Configure the digital audio interface format and sample rate.
Definition SGTL5000.h:145
void setWire(i2c_bus_handle_t handle)
Defines the I2C bus instance to be used.
Definition SGTL5000.h:77
error_t setVoiceVolume(int volume)
Set the headphone / line output volume.
Definition SGTL5000.h:203
error_t getVoiceVolume(int *volume)
Get the headphone / line output volume (0~100)
Definition SGTL5000.h:220
Header-only driver class for the TAS5805M amplifier chip.
Definition TAS5805M.h:44
void setAddress(int addr)
Defines the I2C device address.
Definition TAS5805M.h:77
error_t deinit(void)
Deinitialize TAS5805 codec chip.
Definition TAS5805M.h:104
static constexpr int TAS5805M_ADDR
Definition TAS5805M.h:68
error_t setMute(bool enable)
Set TAS5805 mute or not Continuously call should have an interval time determined by setMuteFade()
Definition TAS5805M.h:152
void setWire(i2c_bus_handle_t handle)
Defines the I2C bus instance to be used.
Definition TAS5805M.h:74
error_t getVolume(int *value)
Get voice volume (0~100)
Definition TAS5805M.h:132
error_t setVolume(int vol)
Set voice volume (0~100)
Definition TAS5805M.h:110
error_t init(codec_config_t *codec_cfg)
Initialize TAS5805 codec chip.
Definition TAS5805M.h:85
bool begin(uint32_t sample_rate, uint8_t bits, codec_mode_t mode, i2s_format_t fmt, bool is_master, uint8_t channels) override
Initializes the codec for I2S with the given sample rate and bits per sample.
Definition TLV320AIC3104.h:334
Header-only driver class for the WM8731 codec chip.
Definition WM8731.h:25
error_t ctrlStateActive(codec_mode_t mode, bool ctrl_state_active)
Activate or standby the codec.
Definition WM8731.h:182
void setAddress(int addr)
Defines the I2C device address.
Definition WM8731.h:128
error_t init(codec_config_t *cfg)
Initialize the WM8731 codec chip.
Definition WM8731.h:131
error_t deinit(void)
Deinitialize the WM8731 codec chip.
Definition WM8731.h:173
error_t setVoiceMute(bool enable)
Mute / unmute the DAC output.
Definition WM8731.h:231
error_t configI2S(codec_mode_t mode, I2SDefinition *iface)
Configure the digital audio interface format and sample rate.
Definition WM8731.h:187
void setWire(i2c_bus_handle_t handle)
Defines the I2C bus instance to be used.
Definition WM8731.h:125
error_t setVoiceVolume(int volume)
Set the headphone / line output volume.
Definition WM8731.h:244
error_t getVoiceVolume(int *volume)
Get the headphone / line output volume (0~100)
Definition WM8731.h:259
Header-only driver class for the WM8960 audio codec chip.
Definition WM8960.h:342
void setAddress(int addr)
Defines the I2C device address.
Definition WM8960.h:350
bool deactivate(void)
This function powers down the modules the required for the features enabled using init.
Definition WM8960.h:666
bool setOutputVolume(uint8_t volume)
This function updates the volume of both the left and right channels of the speaker and headphones.
Definition WM8960.h:582
bool adjustInputVolume(uint8_t volume)
This function updates the volume of both the left and right channels of the microphone input.
Definition WM8960.h:519
void setWriteRetryCount(uint32_t count)
Defines the number of times we retry to update a register value via I2C. This might help if you have ...
Definition WM8960.h:362
void setWire(i2c_bus_handle_t handle)
Defines the I2C bus instance to be used.
Definition WM8960.h:347
void deinit()
Frees up any resources allocated by the driver as part of init().
Definition WM8960.h:421
bool activate(void)
This function powers up the modules the required for the features enabled using init....
Definition WM8960.h:603
bool init(uint8_t features)
Initialize the I2C communication with the audio codec, reset the codec and apply default configuratio...
Definition WM8960.h:401
bool dump()
This function dumps the actual register values.
Definition WM8960.h:811
bool configureClocking(uint32_t mclk_hz, bool enable_pll, wm8960_adc_dac_sample_rate_t sample_rate, wm8960_word_length_t word_length, wm8960_mode_t mode)
This function configures the master clock and the digital interface for the audio codec.
Definition WM8960.h:732
void setAUXgain(uint8_t gain)
Definition WM8978.h:220
void cfgADDA(uint8_t dacen, uint8_t adcen)
Definition WM8978.h:130
void cfgOutput(uint8_t dacen, uint8_t bpsen)
Definition WM8978.h:184
void cfgI2S(uint8_t fmt, uint8_t len)
Definition WM8978.h:235
void setMICgain(uint8_t gain)
Definition WM8978.h:197
void setSPKvol(uint8_t volx)
Definition WM8978.h:256
static constexpr int WM8978_ADDR
Definition WM8978.h:26
bool begin(i2c_bus_handle_t p_wire, int address)
Definition WM8978.h:413
void setLINEINgain(uint8_t gain)
Definition WM8978.h:206
void cfgInput(uint8_t micen, uint8_t lineinen, uint8_t auxen)
Definition WM8978.h:152
void setHPvol(uint8_t voll, uint8_t volr)
Definition WM8978.h:244
Header-only driver class for the WM8994 audio codec chip.
Definition WM8994.h:61
static constexpr uint16_t OUTPUT_DEVICE_HEADPHONE
Definition WM8994.h:75
uint32_t init(uint16_t OutputInputDevice, uint8_t Volume, uint32_t AudioFreq)
Initializes the audio codec and the control interface.
Definition WM8994.h:115
void setAddress(int addr)
Defines the I2C device address.
Definition WM8994.h:101
static constexpr uint16_t OUTPUT_DEVICE_BOTH
Definition WM8994.h:76
uint32_t resume()
Resumes playing on the audio codec.
Definition WM8994.h:605
static constexpr uint8_t DEFAULT_VOLMIN
Definition WM8994.h:82
uint32_t setVolume(uint8_t Volume)
Sets higher or lower the codec volume level.
Definition WM8994.h:668
uint32_t pause()
Pauses playing on the audio codec.
Definition WM8994.h:591
void setWire(i2c_bus_handle_t handle)
Defines the I2C bus instance to be used.
Definition WM8994.h:98
static constexpr uint16_t OUTPUT_DEVICE_SPEAKER
Definition WM8994.h:74
static constexpr int AUDIO_MUTE_ON
Definition WM8994.h:89
uint32_t reset()
Resets wm8994 registers.
Definition WM8994.h:901
static constexpr int WM8994_ADDR
Definition WM8994.h:93
static constexpr uint8_t DEFAULT_VOLMAX
Definition WM8994.h:83
uint32_t stop(uint32_t CodecPdwnMode)
Stops audio Codec playing. It powers down the codec.
Definition WM8994.h:627
static AudioDriverES8388Class AudioDriverES8388H0
Definition AudioDriver.h:2168
static AudioDriverES8311Class AudioDriverES8311
Definition AudioDriver.h:2162
static AudioDriverWM8994Class AudioDriverWM8994
Definition AudioDriver.h:2180
static AudioDriverZephyrT< AW88298, 0x36 > AudioDriverAW88298
Definition AudioDriver.h:2211
static AudioDriverZephyrT< PCM1681, 0x4C > AudioDriverPCM1681
Definition AudioDriver.h:2213
static AudioDriverZephyrT< MAX98091, 0x10 > AudioDriverMAX98091
Definition AudioDriver.h:2209
static AudioDriverES8388Class AudioDriverES8388H2
Definition AudioDriver.h:2172
static AudioDriverNAU8325Class AudioDriverNAU8325
Definition AudioDriver.h:2190
static AudioDriverPCM3168Class AudioDriverPCM3168
Definition AudioDriver.h:2188
static AudioDriverLyratMiniClass AudioDriverLyratMini
Definition AudioDriver.h:2182
static NoDriverClass NoDriver
Definition AudioDriver.h:2184
static AudioDriverES7210Class AudioDriverES7210
Definition AudioDriver.h:2154
static AudioDriverZephyrT< TAS2563, 0x4C > AudioDriverTAS2563
Definition AudioDriver.h:2215
static AudioDriverCS42L51Class AudioDriverCS42L51
Definition AudioDriver.h:2152
static AudioDriverES8156Class AudioDriverES8156
Definition AudioDriver.h:2160
static AudioDriverZephyrT< TAS6422DAC, 0x6C > AudioDriverTAS6422DAC
Definition AudioDriver.h:2217
static AudioDriverES7243Class AudioDriverES7243
Definition AudioDriver.h:2156
static AudioDriverCombined AudioDriverES8311_ES7243(AudioDriverES8311, AudioDriverES7243)
static AudioDriverAC101Class AudioDriverAC101
Definition AudioDriver.h:2148
static AudioDriverZephyrT< DA7212, 0x1A > AudioDriverDA7212
Definition AudioDriver.h:2224
static AudioDriverZephyrT< TLV320DAC310x, 0x18 > AudioDriverTLV320DAC310x
Definition AudioDriver.h:2219
static AudioDriverSGTL5000Class AudioDriverSGTL5000
Definition AudioDriver.h:2201
static AudioDriverZephyrT< WM8962, 0x1A > AudioDriverWM8962
Definition AudioDriver.h:2207
static AudioDriverCS42448Class AudioDriverCS42448
Definition AudioDriver.h:2186
static AudioDriverES7243eClass AudioDriverES7243e
Definition AudioDriver.h:2158
static AudioDriverES8388Class AudioDriverES8388H1
Definition AudioDriver.h:2170
static AudioDriverCS43l22Class AudioDriverCS43l22
Definition AudioDriver.h:2150
static AudioDriverTLV320AIC3104Class AudioDriverTLV320AIC3104
Definition AudioDriver.h:2192
static AudioDriverZephyrT< WM8904, 0x1A > AudioDriverWM8904
Definition AudioDriver.h:2205
static AudioDriverWM8960Class AudioDriverWM8960
Definition AudioDriver.h:2176
static AudioDriverCombined AudioDriverES8311_ES7210(AudioDriverES8311, AudioDriverES7210)
static AudioDriverZephyrT< TLV320AIC3110, 0x18 > AudioDriverTLV320AIC3110
Definition AudioDriver.h:2226
static AudioDriverES8388Class AudioDriverES8388
Definition AudioDriver.h:2166
static AudioDriverWM8978Class AudioDriverWM8978
Definition AudioDriver.h:2178
static AudioDriverES8374Class AudioDriverES8374
Definition AudioDriver.h:2164
static AudioDriverES8388Class AudioDriverES8388H3
Definition AudioDriver.h:2174
static AudioDriverZephyrT< TLV320DAC3100, 0x18 > AudioDriverTLV320DAC3100
Definition AudioDriver.h:2222
Namespace for audio driver components.
Definition AudioBoard.h:5
wm8960_word_length_t
Definition WM8960.h:308
@ WM8960_WL_32BITS
Definition WM8960.h:312
@ WM8960_WL_24BITS
Definition WM8960.h:311
@ WM8960_WL_16BITS
Definition WM8960.h:309
@ WM8960_WL_20BITS
Definition WM8960.h:310
constexpr int WM8731_ADDR
7-bit I2C address (CSB pin low). If CSB is pulled high use 0x1B.
Definition WM8731.h:18
@ CS42L51_FREQUENCY_8K
Definition CS42L51.h:104
@ CS42L51_FREQUENCY_22K
Definition CS42L51.h:101
@ CS42L51_FREQUENCY_16K
Definition CS42L51.h:102
@ CS42L51_FREQUENCY_44K
Definition CS42L51.h:99
@ CS42L51_FREQUENCY_32K
Definition CS42L51.h:100
@ CS42L51_FREQUENCY_48K
Definition CS42L51.h:98
@ CS42L51_FREQUENCY_11K
Definition CS42L51.h:103
struct audio_driver::SPIClass SPI
wm8960_adc_dac_sample_rate_t
Definition WM8960.h:291
@ WM8960_ADC_DAC_SAMPLE_RATE_11_025_KHZ
Definition WM8960.h:299
@ WM8960_ADC_DAC_SAMPLE_RATE_8_KHZ
Definition WM8960.h:301
@ WM8960_ADC_DAC_SAMPLE_RATE_16_KHZ
Definition WM8960.h:297
@ WM8960_ADC_DAC_SAMPLE_RATE_32_KHZ
Definition WM8960.h:294
@ WM8960_ADC_DAC_SAMPLE_RATE_8_018_KHZ
Definition WM8960.h:300
@ WM8960_ADC_DAC_SAMPLE_RATE_24_KHZ
Definition WM8960.h:295
@ WM8960_ADC_DAC_SAMPLE_RATE_48_KHZ
Definition WM8960.h:292
@ WM8960_ADC_DAC_SAMPLE_RATE_22_05_KHZ
Definition WM8960.h:296
@ WM8960_ADC_DAC_SAMPLE_RATE_12_KHZ
Definition WM8960.h:298
@ WM8960_ADC_DAC_SAMPLE_RATE_44_1_KHZ
Definition WM8960.h:293
@ ES7210_AD1_AD0_00
Definition ES7210.h:40
int16_t GpioPin
Definition DriverCommon.h:153
PinLogic
Definition DriverCommon.h:328
input_device_t
Definition DriverCommon.h:170
@ ADC_INPUT_ALL
Definition DriverCommon.h:175
@ ADC_INPUT_NONE
Definition DriverCommon.h:171
@ ADC_INPUT_LINE1
Definition DriverCommon.h:172
@ ADC_INPUT_LINE3
Definition DriverCommon.h:174
@ ADC_INPUT_LINE2
Definition DriverCommon.h:173
@ ADC_INPUT_DIFFERENCE
Definition DriverCommon.h:176
const samplerate_t rate_code[14]
Definition AudioDriver.h:13
static constexpr int WM8960_I2C_ADDRESS
Definition WM8960.h:49
void delayMs(unsigned long ms)
Definition API_Delay.h:19
sample_bits_t
Definition DriverCommon.h:235
@ BIT_LENGTH_24BITS
Definition DriverCommon.h:240
@ BIT_LENGTH_18BITS
Definition DriverCommon.h:238
@ BIT_LENGTH_20BITS
Definition DriverCommon.h:239
@ BIT_LENGTH_32BITS
Definition DriverCommon.h:241
@ BIT_LENGTH_16BITS
Definition DriverCommon.h:237
constexpr int SGTL5000_ADDR
7-bit I2C address with CTRL_ADR0_CS pin low (normal configuration)
Definition SGTL5000.h:19
codec_mode_t
Definition DriverCommon.h:290
@ CODEC_MODE_ENCODE
Definition DriverCommon.h:293
@ CODEC_MODE_NONE
Definition DriverCommon.h:292
@ CODEC_MODE_BOTH
Definition DriverCommon.h:295
@ CODEC_MODE_DECODE
Definition DriverCommon.h:294
es8311_mic_gain_t
Definition ES8311.h:39
@ ES8311MIC_GAIN_42DB
Definition ES8311.h:48
@ ES8311MIC_GAIN_12DB
Definition ES8311.h:43
@ ES8311MIC_GAIN_18DB
Definition ES8311.h:44
@ ES8311MIC_GAIN_24DB
Definition ES8311.h:45
@ ES8311MIC_GAIN_30DB
Definition ES8311.h:46
@ ES8311MIC_GAIN_36DB
Definition ES8311.h:47
@ ES8311MIC_GAIN_6DB
Definition ES8311.h:42
@ ES8311MIC_GAIN_0DB
Definition ES8311.h:41
wm8960_mode_t
Definition WM8960.h:318
@ WM8960_MODE_MASTER
Definition WM8960.h:319
@ WM8960_MODE_SLAVE
Definition WM8960.h:320
@ CS42L51_IN_NONE
Definition CS42L51.h:78
@ CS42L51_IN_MIC2
Definition CS42L51.h:80
@ CS42L51_IN_MIC1
Definition CS42L51.h:79
@ CS42L51_IN_LINE1
Definition CS42L51.h:81
@ CS42L51_IN_LINE3
Definition CS42L51.h:83
@ CS42L51_IN_LINE2
Definition CS42L51.h:82
output_device_t
Definition DriverCommon.h:186
@ DAC_OUTPUT_LINE1
Definition DriverCommon.h:188
@ DAC_OUTPUT_ALL
Definition DriverCommon.h:190
@ DAC_OUTPUT_NONE
Definition DriverCommon.h:187
@ DAC_OUTPUT_LINE2
Definition DriverCommon.h:189
samplerate_t
Definition DriverCommon.h:213
@ RATE_44K
Definition DriverCommon.h:220
@ RATE_24K
Definition DriverCommon.h:218
@ RATE_22K
Definition DriverCommon.h:217
@ RATE_128K
Definition DriverCommon.h:225
@ RATE_8K
Definition DriverCommon.h:214
@ RATE_88K
Definition DriverCommon.h:223
@ RATE_176K
Definition DriverCommon.h:226
@ RATE_32K
Definition DriverCommon.h:219
@ RATE_96K
Definition DriverCommon.h:224
@ RATE_11K
Definition DriverCommon.h:215
@ RATE_64K
Definition DriverCommon.h:222
@ RATE_16K
Definition DriverCommon.h:216
@ RATE_48K
Definition DriverCommon.h:221
@ RATE_192K
Definition DriverCommon.h:227
channels_t
Definition DriverCommon.h:274
@ CHANNELS2
Definition DriverCommon.h:275
@ CHANNELS16
Definition DriverCommon.h:278
@ CHANNELS8
Definition DriverCommon.h:277
@ CHANNELS4
Definition DriverCommon.h:276
es_mic_gain_t
Definition DriverCommon.h:305
@ MIC_GAIN_15DB
Definition DriverCommon.h:312
@ MIC_GAIN_6DB
Definition DriverCommon.h:309
@ MIC_GAIN_9DB
Definition DriverCommon.h:310
@ MIC_GAIN_24DB
Definition DriverCommon.h:315
@ MIC_GAIN_0DB
Definition DriverCommon.h:307
@ MIC_GAIN_12DB
Definition DriverCommon.h:311
@ MIC_GAIN_18DB
Definition DriverCommon.h:313
@ MIC_GAIN_21DB
Definition DriverCommon.h:314
@ MIC_GAIN_3DB
Definition DriverCommon.h:308
@ WM8960_FEATURE_HEADPHONE
Definition WM8960.h:280
@ WM8960_FEATURE_MICROPHONE1
Definition WM8960.h:277
@ WM8960_FEATURE_SPEAKER
Definition WM8960.h:281
@ WM8960_FEATURE_MICROPHONE2
Definition WM8960.h:278
@ WM8960_FEATURE_MICROPHONE3
Definition WM8960.h:279
@ CS42L51_OUT_HEADPHONE
Definition CS42L51.h:89
@ CS42L51_OUT_NONE
Definition CS42L51.h:88
i2s_format_t
Definition DriverCommon.h:250
@ I2S_RIGHT
Definition DriverCommon.h:253
@ I2S_DSP
Definition DriverCommon.h:254
@ I2S_LEFT
Definition DriverCommon.h:252
@ I2S_NORMAL
Definition DriverCommon.h:251
@ MODE_MASTER
Definition DriverCommon.h:205
@ MODE_SLAVE
Definition DriverCommon.h:204
@ CS42L51_PDWN_SW
Definition CS42L51.h:118
@ SIGNAL_TDM
Definition DriverCommon.h:266
const int rate_num[14]
Definition AudioDriver.h:11
void * i2c_bus_handle_t
Definition DriverCommon.h:155
int address
Definition API_I2C.h:27
i2c_bus_handle_t p_wire
Definition API_I2C.h:24
I2S interface parameters for the audio codec.
Definition DriverCommon.h:384
i2s_format_t fmt
Definition DriverCommon.h:386
samplerate_t rate
Definition DriverCommon.h:387
i2s_master_slave_t mode
Definition DriverCommon.h:385
channels_t channels
Definition DriverCommon.h:389
signal_t signal_type
Definition DriverCommon.h:390
sample_bits_t bits
Definition DriverCommon.h:388
I2C pins.
Definition IDriverDeviceInfo.h:127
Top-level codec configuration passed to the audio driver at init.
Definition DriverCommon.h:397
output_device_t output_device
Definition DriverCommon.h:399
I2SDefinition i2s
Definition DriverCommon.h:400
input_device_t input_device
Definition DriverCommon.h:398