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

◆ processing_function()

void MayaFlux::Buffers::MixProcessor::processing_function ( std::shared_ptr< Buffer buffer)
overridevirtual

the mechanism to mix output from one buffer to another channel

Implements MayaFlux::Buffers::BufferProcessor.

Definition at line 53 of file MixProcessor.cpp.

54{
55 if (m_sources.empty()) {
56 return;
57 }
58
59 if (auto root_buffer = std::dynamic_pointer_cast<RootAudioBuffer>(buffer)) {
61
62 auto& data = root_buffer->get_data();
63
64 for (uint32_t i = 0; i < data.size(); i++) {
65 for (const auto& source : m_sources) {
66 if (source.has_sample_at(i)) {
67 data[i] += source.get_mixed_sample(i);
68 }
69 }
70
71 data[i] /= m_sources.size();
72 }
73
74 cleanup();
75 }
76}
std::vector< MixSource > m_sources

References cleanup(), m_sources, and validate_sources().

+ Here is the call graph for this function: