ESPHome
2025.2.0
|
#include <audio_transfer_buffer.h>
Public Member Functions | |
size_t | transfer_data_to_sink (TickType_t ticks_to_wait) |
Writes any available data in the transfer buffer to the sink. More... | |
void | set_sink (const std::weak_ptr< RingBuffer > &ring_buffer) |
Adds a ring buffer as the transfer buffer's sink. More... | |
void | set_sink (speaker::Speaker *speaker) |
Adds a speaker as the transfer buffer's sink. More... | |
void | clear_buffered_data () override |
bool | has_buffered_data () const override |
![]() | |
~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... | |
bool | reallocate (size_t new_buffer_size) |
Static Public Member Functions | |
static std::unique_ptr< AudioSinkTransferBuffer > | create (size_t buffer_size) |
Creates a new sink transfer buffer. More... | |
Protected Attributes | |
speaker::Speaker * | speaker_ {nullptr} |
![]() | |
std::shared_ptr< RingBuffer > | ring_buffer_ |
uint8_t * | buffer_ {nullptr} |
uint8_t * | data_start_ {nullptr} |
size_t | buffer_size_ {0} |
size_t | buffer_length_ {0} |
Additional Inherited Members | |
![]() | |
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... | |
Definition at line 79 of file audio_transfer_buffer.h.
|
overridevirtual |
Reimplemented from esphome::audio::AudioTransferBuffer.
Definition at line 53 of file audio_transfer_buffer.cpp.
|
static |
Creates a new sink transfer buffer.
buffer_size | Size of the transfer buffer in bytes. |
Definition at line 12 of file audio_transfer_buffer.cpp.
|
overridevirtual |
Reimplemented from esphome::audio::AudioTransferBuffer.
Definition at line 150 of file audio_transfer_buffer.cpp.
|
inline |
Adds a ring buffer as the transfer buffer's sink.
ring_buffer | weak_ptr to the allocated ring buffer |
Definition at line 97 of file audio_transfer_buffer.h.
|
inline |
Adds a speaker as the transfer buffer's sink.
speaker | Pointer to the speaker component |
Definition at line 102 of file audio_transfer_buffer.h.
size_t esphome::audio::AudioSinkTransferBuffer::transfer_data_to_sink | ( | TickType_t | ticks_to_wait | ) |
Writes any available data in the transfer buffer to the sink.
ticks_to_wait | FreeRTOS ticks to block while waiting for the sink to have enough space |
Definition at line 128 of file audio_transfer_buffer.cpp.
|
protected |
Definition at line 111 of file audio_transfer_buffer.h.