ESPHome  2024.11.0
Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes
esphome::es8311::ES8311 Class Reference

#include <es8311.h>

Inheritance diagram for esphome::es8311::ES8311:
esphome::audio_dac::AudioDac esphome::Component esphome::i2c::I2CDevice

Public Member Functions

void setup () override
 
float get_setup_priority () const override
 
void dump_config () override
 
bool set_volume (float volume) override
 Writes the volume out to the DAC. More...
 
float volume () override
 Gets the current volume out from the DAC. More...
 
bool set_mute_off () override
 Disables mute for audio out. More...
 
bool set_mute_on () override
 Enables mute for audio out. More...
 
bool is_muted () override
 
void set_use_mclk (bool use_mclk)
 
void set_bits_per_sample (ES8311Resolution resolution)
 
void set_sample_frequency (uint32_t sample_frequency)
 
void set_use_mic (bool use_mic)
 
void set_mic_gain (ES8311MicGain mic_gain)
 
- Public Member Functions inherited from esphome::Component
virtual void loop ()
 This method will be called repeatedly. More...
 
float get_actual_setup_priority () const
 
void set_setup_priority (float priority)
 
virtual float get_loop_priority () const
 priority of loop(). More...
 
void call ()
 
virtual void on_shutdown ()
 
virtual void on_safe_shutdown ()
 
uint32_t get_component_state () const
 
virtual void mark_failed ()
 Mark this component as failed. More...
 
bool is_failed () const
 
bool is_ready () const
 
virtual bool can_proceed ()
 
bool status_has_warning () const
 
bool status_has_error () const
 
void status_set_warning (const char *message="unspecified")
 
void status_set_error (const char *message="unspecified")
 
void status_clear_warning ()
 
void status_clear_error ()
 
void status_momentary_warning (const std::string &name, uint32_t length=5000)
 
void status_momentary_error (const std::string &name, uint32_t length=5000)
 
bool has_overridden_loop () const
 
void set_component_source (const char *source)
 Set where this component was loaded from for some debug messages. More...
 
const char * get_component_source () const
 Get the integration where this component was declared as a string. More...
 
- Public Member Functions inherited from esphome::i2c::I2CDevice
 I2CDevice ()=default
 we use the C++ default constructor More...
 
void set_i2c_address (uint8_t address)
 We store the address of the device on the bus. More...
 
void set_i2c_bus (I2CBus *bus)
 we store the pointer to the I2CBus to use More...
 
I2CRegister reg (uint8_t a_register)
 calls the I2CRegister constructor More...
 
I2CRegister16 reg16 (uint16_t a_register)
 calls the I2CRegister16 constructor More...
 
ErrorCode read (uint8_t *data, size_t len)
 reads an array of bytes from the device using an I2CBus More...
 
ErrorCode read_register (uint8_t a_register, uint8_t *data, size_t len, bool stop=true)
 reads an array of bytes from a specific register in the I²C device More...
 
ErrorCode read_register16 (uint16_t a_register, uint8_t *data, size_t len, bool stop=true)
 reads an array of bytes from a specific register in the I²C device More...
 
ErrorCode write (const uint8_t *data, size_t len, bool stop=true)
 writes an array of bytes to a device using an I2CBus More...
 
ErrorCode write_register (uint8_t a_register, const uint8_t *data, size_t len, bool stop=true)
 writes an array of bytes to a specific register in the I²C device More...
 
ErrorCode write_register16 (uint16_t a_register, const uint8_t *data, size_t len, bool stop=true)
 write an array of bytes to a specific register in the I²C device More...
 
bool read_bytes (uint8_t a_register, uint8_t *data, uint8_t len)
 Compat APIs All methods below have been added for compatibility reasons. More...
 
bool read_bytes_raw (uint8_t *data, uint8_t len)
 
template<size_t N>
optional< std::array< uint8_t, N > > read_bytes (uint8_t a_register)
 
template<size_t N>
optional< std::array< uint8_t, N > > read_bytes_raw ()
 
bool read_bytes_16 (uint8_t a_register, uint16_t *data, uint8_t len)
 
bool read_byte (uint8_t a_register, uint8_t *data, bool stop=true)
 
optional< uint8_t > read_byte (uint8_t a_register)
 
bool read_byte_16 (uint8_t a_register, uint16_t *data)
 
bool write_bytes (uint8_t a_register, const uint8_t *data, uint8_t len, bool stop=true)
 
bool write_bytes (uint8_t a_register, const std::vector< uint8_t > &data)
 
template<size_t N>
bool write_bytes (uint8_t a_register, const std::array< uint8_t, N > &data)
 
bool write_bytes_16 (uint8_t a_register, const uint16_t *data, uint8_t len)
 
bool write_byte (uint8_t a_register, uint8_t data, bool stop=true)
 
bool write_byte_16 (uint8_t a_register, uint16_t data)
 

Protected Member Functions

bool configure_clock_ ()
 Configures the ES8311 registers for the chosen sample rate. More...
 
bool configure_format_ ()
 Configures the ES8311 registers for the chosen bits per sample. More...
 
bool configure_mic_ ()
 Configures the ES8311 microphone registers. More...
 
bool set_mute_state_ (bool mute_state)
 Mutes or unmute the DAC audio out. More...
 
- Protected Member Functions inherited from esphome::Component
virtual void call_loop ()
 
virtual void call_setup ()
 
virtual void call_dump_config ()
 
void set_interval (const std::string &name, uint32_t interval, std::function< void()> &&f)
 Set an interval function with a unique name. More...
 
void set_interval (uint32_t interval, std::function< void()> &&f)
 
bool cancel_interval (const std::string &name)
 Cancel an interval function. More...
 
void set_retry (const std::string &name, uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult(uint8_t)> &&f, float backoff_increase_factor=1.0f)
 Set an retry function with a unique name. More...
 
void set_retry (uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult(uint8_t)> &&f, float backoff_increase_factor=1.0f)
 
bool cancel_retry (const std::string &name)
 Cancel a retry function. More...
 
void set_timeout (const std::string &name, uint32_t timeout, std::function< void()> &&f)
 Set a timeout function with a unique name. More...
 
void set_timeout (uint32_t timeout, std::function< void()> &&f)
 
bool cancel_timeout (const std::string &name)
 Cancel a timeout function. More...
 
void defer (const std::string &name, std::function< void()> &&f)
 Defer a callback to the next loop() call. More...
 
void defer (std::function< void()> &&f)
 Defer a callback to the next loop() call. More...
 
bool cancel_defer (const std::string &name)
 Cancel a defer callback using the specified name, name must not be empty. More...
 

Static Protected Member Functions

static uint8_t calculate_resolution_value (ES8311Resolution resolution)
 Computes the register value for the configured resolution (bits per sample) More...
 
static const ES8311Coefficientget_coefficient (uint32_t mclk, uint32_t rate)
 Retrieves the appropriate registers values for the configured mclk and rate. More...
 

Protected Attributes

bool use_mic_
 
ES8311MicGain mic_gain_
 
bool use_mclk_
 
bool sclk_inverted_ {false}
 
bool mclk_inverted_ {false}
 
uint32_t mclk_multiple_ {256}
 
uint32_t sample_frequency_
 
ES8311Resolution resolution_in_
 
ES8311Resolution resolution_out_
 
- Protected Attributes inherited from esphome::audio_dac::AudioDac
bool is_muted_ {false}
 
- Protected Attributes inherited from esphome::Component
uint32_t component_state_ {0x0000}
 State of this component. More...
 
float setup_priority_override_ {NAN}
 
const char * component_source_ {nullptr}
 
- Protected Attributes inherited from esphome::i2c::I2CDevice
uint8_t address_ {0x00}
 store the address of the device on the bus More...
 
I2CBusbus_ {nullptr}
 pointer to I2CBus instance More...
 

Detailed Description

Definition at line 46 of file es8311.h.

Member Function Documentation

◆ calculate_resolution_value()

uint8_t esphome::es8311::ES8311::calculate_resolution_value ( ES8311Resolution  resolution)
staticprotected

Computes the register value for the configured resolution (bits per sample)

Parameters
resolutionbits per sample enum for both audio in and audio out
Returns
register value

Definition at line 79 of file es8311.cpp.

◆ configure_clock_()

bool esphome::es8311::ES8311::configure_clock_ ( )
protected

Configures the ES8311 registers for the chosen sample rate.

Returns
True if successful and false otherwise

Definition at line 104 of file es8311.cpp.

◆ configure_format_()

bool esphome::es8311::ES8311::configure_format_ ( )
protected

Configures the ES8311 registers for the chosen bits per sample.

Returns
True if successful and false otherwise

Definition at line 175 of file es8311.cpp.

◆ configure_mic_()

bool esphome::es8311::ES8311::configure_mic_ ( )
protected

Configures the ES8311 microphone registers.

Returns
True if successful and false otherwise

Definition at line 194 of file es8311.cpp.

◆ dump_config()

void esphome::es8311::ES8311::dump_config ( )
overridevirtual

Reimplemented from esphome::Component.

Definition at line 54 of file es8311.cpp.

◆ get_coefficient()

const ES8311Coefficient * esphome::es8311::ES8311::get_coefficient ( uint32_t  mclk,
uint32_t  rate 
)
staticprotected

Retrieves the appropriate registers values for the configured mclk and rate.

Parameters
mclkmlck frequency in Hz
ratesample rate frequency in Hz
Returns
ES8311Coeffecient containing appropriate register values to configure the ES8311 or nullptr if impossible

Definition at line 96 of file es8311.cpp.

◆ get_setup_priority()

float esphome::es8311::ES8311::get_setup_priority ( ) const
inlineoverridevirtual

Reimplemented from esphome::Component.

Definition at line 53 of file es8311.h.

◆ is_muted()

bool esphome::es8311::ES8311::is_muted ( )
inlineoverridevirtual

Implements esphome::audio_dac::AudioDac.

Definition at line 77 of file es8311.h.

◆ set_bits_per_sample()

void esphome::es8311::ES8311::set_bits_per_sample ( ES8311Resolution  resolution)
inline

Definition at line 84 of file es8311.h.

◆ set_mic_gain()

void esphome::es8311::ES8311::set_mic_gain ( ES8311MicGain  mic_gain)
inline

Definition at line 90 of file es8311.h.

◆ set_mute_off()

bool esphome::es8311::ES8311::set_mute_off ( )
inlineoverridevirtual

Disables mute for audio out.

Returns
True if successful and false otherwise

Implements esphome::audio_dac::AudioDac.

Definition at line 71 of file es8311.h.

◆ set_mute_on()

bool esphome::es8311::ES8311::set_mute_on ( )
inlineoverridevirtual

Enables mute for audio out.

Returns
True if successful and false otherwise

Implements esphome::audio_dac::AudioDac.

Definition at line 75 of file es8311.h.

◆ set_mute_state_()

bool esphome::es8311::ES8311::set_mute_state_ ( bool  mute_state)
protected

Mutes or unmute the DAC audio out.

Parameters
mute_stateTrue to mute, false to unmute
Returns

Definition at line 208 of file es8311.cpp.

◆ set_sample_frequency()

void esphome::es8311::ES8311::set_sample_frequency ( uint32_t  sample_frequency)
inline

Definition at line 88 of file es8311.h.

◆ set_use_mclk()

void esphome::es8311::ES8311::set_use_mclk ( bool  use_mclk)
inline

Definition at line 83 of file es8311.h.

◆ set_use_mic()

void esphome::es8311::ES8311::set_use_mic ( bool  use_mic)
inline

Definition at line 89 of file es8311.h.

◆ set_volume()

bool esphome::es8311::ES8311::set_volume ( float  volume)
overridevirtual

Writes the volume out to the DAC.

Parameters
volumefloating point between 0.0 and 1.0
Returns
True if successful and false otherwise

Implements esphome::audio_dac::AudioDac.

Definition at line 67 of file es8311.cpp.

◆ setup()

void esphome::es8311::ES8311::setup ( )
overridevirtual

Reimplemented from esphome::Component.

Definition at line 24 of file es8311.cpp.

◆ volume()

float esphome::es8311::ES8311::volume ( )
overridevirtual

Gets the current volume out from the DAC.

Returns
floating point between 0.0 and 1.0

Implements esphome::audio_dac::AudioDac.

Definition at line 73 of file es8311.cpp.

Field Documentation

◆ mclk_inverted_

bool esphome::es8311::ES8311::mclk_inverted_ {false}
protected

Definition at line 126 of file es8311.h.

◆ mclk_multiple_

uint32_t esphome::es8311::ES8311::mclk_multiple_ {256}
protected

Definition at line 127 of file es8311.h.

◆ mic_gain_

ES8311MicGain esphome::es8311::ES8311::mic_gain_
protected

Definition at line 122 of file es8311.h.

◆ resolution_in_

ES8311Resolution esphome::es8311::ES8311::resolution_in_
protected

Definition at line 130 of file es8311.h.

◆ resolution_out_

ES8311Resolution esphome::es8311::ES8311::resolution_out_
protected

Definition at line 131 of file es8311.h.

◆ sample_frequency_

uint32_t esphome::es8311::ES8311::sample_frequency_
protected

Definition at line 129 of file es8311.h.

◆ sclk_inverted_

bool esphome::es8311::ES8311::sclk_inverted_ {false}
protected

Definition at line 125 of file es8311.h.

◆ use_mclk_

bool esphome::es8311::ES8311::use_mclk_
protected

Definition at line 124 of file es8311.h.

◆ use_mic_

bool esphome::es8311::ES8311::use_mic_
protected

Definition at line 121 of file es8311.h.


The documentation for this class was generated from the following files: