MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Buffers::FilterProcessor Class Reference

Buffer processor that applies filter nodes to audio data. More...

#include <FilterProcessor.hpp>

+ Inheritance diagram for MayaFlux::Buffers::FilterProcessor:
+ Collaboration diagram for MayaFlux::Buffers::FilterProcessor:

Public Member Functions

 FilterProcessor ()=default
 
template<typename... Args>
requires std::constructible_from<Nodes::Filters::FIR, Args...>
 FilterProcessor (Args &&... args)
 Creates processor with FIR filter.
 
template<typename... Args>
requires std::constructible_from<Nodes::Filters::IIR, Args...>
 FilterProcessor (Args &&... args)
 Creates processor with IIR filter.
 
 FilterProcessor (const std::shared_ptr< Nodes::Filters::Filter > &filter)
 Creates processor with external filter node.
 
void processing_function (std::shared_ptr< Buffer > buffer) override
 The core processing function that must be implemented by derived classes.
 
void on_attach (std::shared_ptr< Buffer > buffer) override
 Called when this processor is attached to a buffer.
 
std::shared_ptr< Nodes::Filters::Filterget_filter () const
 
bool is_using_internal () const
 
void update_filter_node (const std::shared_ptr< Nodes::Filters::Filter > &filter)
 
- Public Member Functions inherited from MayaFlux::Buffers::BufferProcessor
virtual ~BufferProcessor ()=default
 Virtual destructor for proper cleanup of derived classes.
 
void process (std::shared_ptr< Buffer > buffer)
 Applies a computational transformation to the data in the provided buffer.
 
virtual void on_detach (std::shared_ptr< Buffer >)
 Called when this processor is detached from a buffer.
 
virtual void set_processing_token (ProcessingToken token)
 Gets the preferred processing backend for this processor.
 
virtual ProcessingToken get_processing_token () const
 Gets the current processing token for this buffer.
 
virtual bool is_compatible_with (std::shared_ptr< Buffer >) const
 Checks if this processor can handle the specified buffer type.
 

Private Member Functions

void process_single_sample (double &sample)
 

Private Attributes

std::shared_ptr< Nodes::Filters::Filterm_filter
 
std::shared_ptr< Nodes::Filters::Filterm_pending_filter
 
bool m_use_internal {}
 
size_t m_current_position = 0
 

Additional Inherited Members

- Protected Attributes inherited from MayaFlux::Buffers::BufferProcessor
ProcessingToken m_processing_token { ProcessingToken::AUDIO_BACKEND }
 

Detailed Description

Buffer processor that applies filter nodes to audio data.

This processor connects a Filter node (FIR or IIR) to an AudioBuffer, allowing filtering operations to be applied to buffer data. It supports both internally managed filter nodes and externally provided filter nodes.

Definition at line 21 of file FilterProcessor.hpp.


The documentation for this class was generated from the following files: