MayaFlux 0.2.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 8 of file FilterProcessor.cpp.

9{
10 if (m_use_internal) {
11 sample = m_filter->process_sample(sample);
12 return;
13 }
14
15 Nodes::atomic_inc_modulator_count(m_filter->m_modulator_count, 1);
16 uint32_t state = m_filter->m_state.load();
17
18 if (state & Utils::NodeState::PROCESSED) {
19 sample = m_filter->get_last_output();
20 } else {
21 sample = m_filter->process_sample(sample);
23 }
24
25 Nodes::atomic_dec_modulator_count(m_filter->m_modulator_count, 1);
27}
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: