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

#include <audio_transfer_buffer.h>

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

Public Member Functions

 ~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.
 
virtual bool has_buffered_data () const
 Tests if there is any data in the tranfer buffer or the source/sink.
 
bool reallocate (size_t new_buffer_size)
 Reallocates the transfer buffer, preserving any existing data.
 

Protected Member Functions

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

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 24 of file audio_transfer_buffer.h.

Constructor & Destructor Documentation

◆ ~AudioTransferBuffer()

esphome::audio::AudioTransferBuffer::~AudioTransferBuffer ( )

Destructor that deallocates the transfer buffer.

Definition at line 12 of file audio_transfer_buffer.cpp.

Member Function Documentation

◆ allocate_buffer_()

bool esphome::audio::AudioTransferBuffer::allocate_buffer_ ( size_t buffer_size)
protected

Allocates the transfer buffer in external memory, if available.

Parameters
buffer_sizeThe number of bytes to allocate
Returns
True is successful, false otherwise.

Definition at line 108 of file audio_transfer_buffer.cpp.

◆ available()

size_t esphome::audio::AudioTransferBuffer::available ( ) const
inline

Returns the transfer buffer's currently available bytes to read.

Definition at line 50 of file audio_transfer_buffer.h.

◆ capacity()

size_t esphome::audio::AudioTransferBuffer::capacity ( ) const
inline

Returns the transfer buffers allocated bytes.

Definition at line 53 of file audio_transfer_buffer.h.

◆ clear_buffered_data()

void esphome::audio::AudioTransferBuffer::clear_buffered_data ( )
virtual

Clears data in the transfer buffer and, if possible, the source/sink.

Reimplemented in esphome::audio::AudioSinkTransferBuffer.

Definition at line 53 of file audio_transfer_buffer.cpp.

◆ deallocate_buffer_()

void esphome::audio::AudioTransferBuffer::deallocate_buffer_ ( )
protected

Deallocates the buffer and resets the class variables.

Definition at line 124 of file audio_transfer_buffer.cpp.

◆ decrease_buffer_length()

void esphome::audio::AudioTransferBuffer::decrease_buffer_length ( size_t bytes)

Updates the internal state of the transfer buffer.

This should be called after reading data

Parameters
bytesThe number of bytes consumed/read

Definition at line 41 of file audio_transfer_buffer.cpp.

◆ free()

size_t esphome::audio::AudioTransferBuffer::free ( ) const

Returns the transfer buffer's currrently free bytes available to write.

Definition at line 34 of file audio_transfer_buffer.cpp.

◆ get_buffer_end()

uint8_t * esphome::audio::AudioTransferBuffer::get_buffer_end ( ) const
inline

Returns a pointer to the end of the transfer buffer where free() bytes of new data can be written.

Definition at line 39 of file audio_transfer_buffer.h.

◆ get_buffer_start()

uint8_t * esphome::audio::AudioTransferBuffer::get_buffer_start ( ) const
inline

Returns a pointer to the start of the transfer buffer where available() bytes of existing data can be read.

Definition at line 36 of file audio_transfer_buffer.h.

◆ has_buffered_data()

bool esphome::audio::AudioTransferBuffer::has_buffered_data ( ) const
virtual

Tests if there is any data in the tranfer buffer or the source/sink.

Returns
True if there is data, false otherwise.

Reimplemented in esphome::audio::AudioSinkTransferBuffer, and esphome::audio::AudioSourceTransferBuffer.

Definition at line 72 of file audio_transfer_buffer.cpp.

◆ increase_buffer_length()

void esphome::audio::AudioTransferBuffer::increase_buffer_length ( size_t bytes)

Updates the internal state of the transfer buffer.

This should be called after writing data

Parameters
bytesThe number of bytes written

Definition at line 51 of file audio_transfer_buffer.cpp.

◆ reallocate()

bool esphome::audio::AudioTransferBuffer::reallocate ( size_t new_buffer_size)

Reallocates the transfer buffer, preserving any existing data.

Parameters
new_buffer_sizeThe new size in bytes. Must be at least as large as available().
Returns
True if successful, false otherwise. On failure, the original buffer remains valid.

Definition at line 79 of file audio_transfer_buffer.cpp.

Field Documentation

◆ buffer_

uint8_t* esphome::audio::AudioTransferBuffer::buffer_ {nullptr}
protected

Definition at line 82 of file audio_transfer_buffer.h.

◆ buffer_length_

size_t esphome::audio::AudioTransferBuffer::buffer_length_ {0}
protected

Definition at line 86 of file audio_transfer_buffer.h.

◆ buffer_size_

size_t esphome::audio::AudioTransferBuffer::buffer_size_ {0}
protected

Definition at line 85 of file audio_transfer_buffer.h.

◆ data_start_

uint8_t* esphome::audio::AudioTransferBuffer::data_start_ {nullptr}
protected

Definition at line 83 of file audio_transfer_buffer.h.

◆ ring_buffer_

std::shared_ptr<RingBuffer> esphome::audio::AudioTransferBuffer::ring_buffer_
protected

Definition at line 80 of file audio_transfer_buffer.h.


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