ESPHome 2026.3.0-dev
Loading...
Searching...
No Matches
esphome::audio::AudioSourceTransferBuffer Class Reference

#include <audio_transfer_buffer.h>

Inheritance diagram for esphome::audio::AudioSourceTransferBuffer:
esphome::audio::AudioTransferBuffer esphome::audio::AudioReadableBuffer

Public Member Functions

size_t transfer_data_from_source (TickType_t ticks_to_wait, bool pre_shift=true)
 Reads any available data from the source into the transfer buffer.
 
void set_source (const std::weak_ptr< RingBuffer > &ring_buffer)
 Adds a ring buffer as the transfer buffer's source.
 
const uint8_t * data () const override
 
size_t available () const override
 
size_t free () const override
 
void consume (size_t bytes) override
 
bool has_buffered_data () const override
 
size_t fill (TickType_t ticks_to_wait, bool pre_shift) override
 
- Public Member Functions inherited from esphome::audio::AudioTransferBuffer
 ~AudioTransferBuffer ()
 Destructor that deallocates the transfer buffer.
 
uint8_t * get_buffer_start () const
 Returns a pointer to the start of the transfer buffer where available() bytes of existing data can be read.
 
uint8_t * get_buffer_end () const
 Returns a pointer to the end of the transfer buffer where free() bytes of new data can be written.
 
void decrease_buffer_length (size_t bytes)
 Updates the internal state of the transfer buffer.
 
void increase_buffer_length (size_t bytes)
 Updates the internal state of the transfer buffer.
 
size_t available () const
 Returns the transfer buffer's currently available bytes to read.
 
size_t capacity () const
 Returns the transfer buffers allocated bytes.
 
size_t free () const
 Returns the transfer buffer's currrently free bytes available to write.
 
virtual void clear_buffered_data ()
 Clears data in the transfer buffer and, if possible, the source/sink.
 
bool reallocate (size_t new_buffer_size)
 Reallocates the transfer buffer, preserving any existing data.
 
- Public Member Functions inherited from esphome::audio::AudioReadableBuffer
virtual ~AudioReadableBuffer ()=default
 
size_t fill (TickType_t ticks_to_wait)
 

Static Public Member Functions

static std::unique_ptr< AudioSourceTransferBuffercreate (size_t buffer_size)
 Creates a new source transfer buffer.
 

Additional Inherited Members

- Protected Member Functions inherited from esphome::audio::AudioTransferBuffer
bool allocate_buffer_ (size_t buffer_size)
 Allocates the transfer buffer in external memory, if available.
 
void deallocate_buffer_ ()
 Deallocates the buffer and resets the class variables.
 
- Protected Attributes inherited from esphome::audio::AudioTransferBuffer
std::shared_ptr< RingBufferring_buffer_
 
uint8_t * buffer_ {nullptr}
 
uint8_t * data_start_ {nullptr}
 
size_t buffer_size_ {0}
 
size_t buffer_length_ {0}
 

Detailed Description

Definition at line 162 of file audio_transfer_buffer.h.

Member Function Documentation

◆ available()

size_t esphome::audio::AudioSourceTransferBuffer::available ( ) const
inlineoverridevirtual

Implements esphome::audio::AudioReadableBuffer.

Definition at line 187 of file audio_transfer_buffer.h.

◆ consume()

void esphome::audio::AudioSourceTransferBuffer::consume ( size_t bytes)
inlineoverridevirtual

Implements esphome::audio::AudioReadableBuffer.

Definition at line 189 of file audio_transfer_buffer.h.

◆ create()

std::unique_ptr< AudioSourceTransferBuffer > esphome::audio::AudioSourceTransferBuffer::create ( size_t buffer_size)
static

Creates a new source transfer buffer.

Parameters
buffer_sizeSize of the transfer buffer in bytes.
Returns
unique_ptr if successfully allocated, nullptr otherwise

Definition at line 24 of file audio_transfer_buffer.cpp.

◆ data()

const uint8_t * esphome::audio::AudioSourceTransferBuffer::data ( ) const
inlineoverridevirtual

Implements esphome::audio::AudioReadableBuffer.

Definition at line 186 of file audio_transfer_buffer.h.

◆ fill()

size_t esphome::audio::AudioSourceTransferBuffer::fill ( TickType_t ticks_to_wait,
bool pre_shift )
inlineoverridevirtual

Reimplemented from esphome::audio::AudioReadableBuffer.

Definition at line 191 of file audio_transfer_buffer.h.

◆ free()

size_t esphome::audio::AudioSourceTransferBuffer::free ( ) const
overridevirtual

Reimplemented from esphome::audio::AudioReadableBuffer.

Definition at line 196 of file audio_transfer_buffer.cpp.

◆ has_buffered_data()

bool esphome::audio::AudioSourceTransferBuffer::has_buffered_data ( ) const
overridevirtual

Reimplemented from esphome::audio::AudioTransferBuffer.

Definition at line 198 of file audio_transfer_buffer.cpp.

◆ set_source()

void esphome::audio::AudioSourceTransferBuffer::set_source ( const std::weak_ptr< RingBuffer > & ring_buffer)
inline

Adds a ring buffer as the transfer buffer's source.

Parameters
ring_bufferweak_ptr to the allocated ring buffer

Definition at line 183 of file audio_transfer_buffer.h.

◆ transfer_data_from_source()

size_t esphome::audio::AudioSourceTransferBuffer::transfer_data_from_source ( TickType_t ticks_to_wait,
bool pre_shift = true )

Reads any available data from the source into the transfer buffer.

Parameters
ticks_to_waitFreeRTOS ticks to block while waiting for the source to have enough data
pre_shiftIf true, any unwritten data is moved to the start of the buffer before transferring from the source. Defaults to true.
Returns
Number of bytes read

Definition at line 136 of file audio_transfer_buffer.cpp.


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