ESPHome  2025.2.0
Public Member Functions | Protected Member Functions | Protected Attributes
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. More...
 
uint8_t * get_buffer_start () const
 Returns a pointer to the start of the transfer buffer where available() bytes of exisiting data can be read. More...
 
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. More...
 
void decrease_buffer_length (size_t bytes)
 Updates the internal state of the transfer buffer. More...
 
void increase_buffer_length (size_t bytes)
 Updates the internal state of the transfer buffer. More...
 
size_t available () const
 Returns the transfer buffer's currently available bytes to read. More...
 
size_t capacity () const
 Returns the transfer buffers allocated bytes. More...
 
size_t free () const
 Returns the transfer buffer's currrently free bytes available to write. More...
 
virtual void clear_buffered_data ()
 Clears data in the transfer buffer and, if possible, the source/sink. More...
 
virtual bool has_buffered_data () const
 Tests if there is any data in the tranfer buffer or the source/sink. More...
 
bool reallocate (size_t new_buffer_size)
 

Protected Member Functions

bool allocate_buffer_ (size_t buffer_size)
 Allocates the transfer buffer in external memory, if available. More...
 
void deallocate_buffer_ ()
 Deallocates the buffer and resets the class variables. More...
 

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

Constructor & Destructor Documentation

◆ ~AudioTransferBuffer()

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

Destructor that deallocates the transfer buffer.

Definition at line 10 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.

Returns
True is successful, false otherwise.

Definition at line 81 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 44 of file audio_transfer_buffer.h.

◆ capacity()

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

Returns the transfer buffers allocated bytes.

Definition at line 47 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 46 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 97 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 39 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 32 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 33 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 exisiting data can be read.

Definition at line 30 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.

Definition at line 65 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 44 of file audio_transfer_buffer.cpp.

◆ reallocate()

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

Definition at line 72 of file audio_transfer_buffer.cpp.

Field Documentation

◆ buffer_

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

Definition at line 72 of file audio_transfer_buffer.h.

◆ buffer_length_

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

Definition at line 76 of file audio_transfer_buffer.h.

◆ buffer_size_

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

Definition at line 75 of file audio_transfer_buffer.h.

◆ data_start_

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

Definition at line 73 of file audio_transfer_buffer.h.

◆ ring_buffer_

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

Definition at line 70 of file audio_transfer_buffer.h.


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