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

◆ process_single_sample()

void MayaFlux::Buffers::FilterProcessor::process_single_sample ( double &  sample)
private

Definition at line 10 of file FilterProcessor.cpp.

11{
12 if (m_use_internal) {
13 sample = m_filter->process_sample(sample);
14 return;
15 }
16
17 Nodes::atomic_inc_modulator_count(m_filter->m_modulator_count, 1);
18 uint32_t state = m_filter->m_state.load();
19
20 if (state & Utils::NodeState::PROCESSED) {
21 sample = m_filter->get_last_output();
22 } else {
23 sample = m_filter->process_sample(sample);
25 }
26
27 Nodes::atomic_dec_modulator_count(m_filter->m_modulator_count, 1);
29}
std::shared_ptr< Nodes::Filters::Filter > m_filter
void atomic_add_flag(std::atomic< Utils::NodeState > &state, Utils::NodeState flag)
Atomically adds a flag to a node state.
Definition NodeUtils.cpp:96
void try_reset_processed_state(std::shared_ptr< Node > node)
Attempts to reset the processed state of a node.
void atomic_inc_modulator_count(std::atomic< uint32_t > &count, int amount)
Atomically increments the modulator count by a specified amount.
void atomic_dec_modulator_count(std::atomic< uint32_t > &count, int amount)
Atomically decrements the modulator count by a specified amount.
@ PROCESSED
Node has been processed this cycle.
Definition Utils.hpp:34

References MayaFlux::Nodes::atomic_add_flag(), MayaFlux::Nodes::atomic_dec_modulator_count(), MayaFlux::Nodes::atomic_inc_modulator_count(), m_filter, m_use_internal, MayaFlux::Utils::PROCESSED, and MayaFlux::Nodes::try_reset_processed_state().

+ Here is the call graph for this function: