MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ on_attach()

void MayaFlux::Buffers::FeedbackProcessor::on_attach ( std::shared_ptr< Buffer buffer)
overridevirtual

Called when this processor is attached to a buffer.

Parameters
bufferBuffer this processor is being attached to

Initializes the previous state storage to match the size of the attached buffer. If the buffer is a FeedbackBuffer, the processor will use its internal previous state.

Reimplemented from MayaFlux::Buffers::BufferProcessor.

Definition at line 76 of file FeedbackBuffer.cpp.

77{
78 if (auto feedback_buffer = std::dynamic_pointer_cast<FeedbackBuffer>(buffer)) {
80
81 if (m_feed_samples != feedback_buffer->get_feed_samples()) {
82 m_feed_samples = feedback_buffer->get_feed_samples();
83 }
84
85 if (m_feedback_amount != feedback_buffer->get_feedback()) {
86 feedback_buffer->set_feedback(m_feedback_amount);
87 }
88 if (m_previous_buffer.size() != m_feed_samples) {
90 }
91
92 } else {
93 m_previous_buffer.resize(std::dynamic_pointer_cast<AudioBuffer>(buffer)->get_num_samples(), 0.0);
95 }
97}
bool m_using_internal_buffer
Flag indicating whether to use the buffer's internal previous state.
uint32_t m_feed_samples
Number of samples to feed back.
std::vector< double > m_previous_buffer
Storage for the previous system state.
float m_feedback_amount
Feedback coefficient (0.0-1.0)

References m_buffer_index, m_feed_samples, m_feedback_amount, m_previous_buffer, and m_using_internal_buffer.