7#include <freertos/event_groups.h>
8#include <freertos/queue.h>
9#include <freertos/FreeRTOS.h>
33#if SOC_I2S_SUPPORTS_DAC
56 size_t play(
const uint8_t *data,
size_t length, TickType_t ticks_to_wait)
override;
80 static void speaker_task(
void *params);
92 static bool i2s_on_sent_cb(i2s_chan_handle_t handle, i2s_event_data_t *event,
void *user_ctx);
128#if SOC_I2S_SUPPORTS_DAC
BedjetMode mode
BedJet operating mode.
i2s_dac_mode_t internal_dac_mode_
esp_err_t start_i2s_driver_(audio::AudioStreamInfo &audio_stream_info)
Starts the ESP32 I2S driver.
TaskHandle_t speaker_task_handle_
int16_t q15_volume_factor_
float get_setup_priority() const override
void stop_(bool wait_on_empty)
Plays the provided audio data.
void stop_i2s_driver_()
Stops the I2S driver and unlocks the I2S port.
void set_dout_pin(uint8_t pin)
void set_internal_dac_mode(i2s_dac_mode_t mode)
void set_pause_state(bool pause_state) override
static bool i2s_on_sent_cb(i2s_chan_handle_t handle, i2s_event_data_t *event, void *user_ctx)
Callback function used to send playback timestamps the to the speaker task.
std::weak_ptr< RingBuffer > audio_ring_buffer_
void set_i2s_comm_fmt(std::string mode)
void dump_config() override
bool get_pause_state() const override
void set_buffer_duration(uint32_t buffer_duration_ms)
optional< uint32_t > timeout_
uint32_t buffer_duration_ms_
std::string i2s_comm_fmt_
i2s_chan_handle_t tx_handle_
audio::AudioStreamInfo current_stream_info_
i2s_comm_format_t i2s_comm_fmt_
QueueHandle_t i2s_event_queue_
void set_timeout(uint32_t ms)
EventGroupHandle_t event_group_
void set_i2s_comm_fmt(i2s_comm_format_t mode)
virtual size_t play(const uint8_t *data, size_t length)=0
Plays the provided audio data.
virtual void set_volume(float volume)
virtual void set_mute_state(bool mute_state)
virtual bool has_buffered_data() const =0
const float PROCESSOR
For components that use data from sensors like displays.
Providing packet encoding functions for exchanging data with a remote host.