MayaFlux 0.3.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
NodeFeedProcessor.cpp
Go to the documentation of this file.
2
5
6namespace MayaFlux::Buffers {
7
8NodeFeedProcessor::NodeFeedProcessor(std::shared_ptr<Nodes::StreamReaderNode> target)
9 : m_target(std::move(target))
10{
11}
12
13void NodeFeedProcessor::processing_function(const std::shared_ptr<Buffer>& buffer)
14{
15 if (!m_target) {
16 return;
17 }
18
19 auto audio_buffer = std::dynamic_pointer_cast<AudioBuffer>(buffer);
20 if (!audio_buffer) {
21 return;
22 }
23
24 const auto& data = audio_buffer->get_data();
25 m_target->set_data(data, this);
26}
27
28void NodeFeedProcessor::on_attach(const std::shared_ptr<Buffer>& /*buffer*/)
29{
30}
31
32void NodeFeedProcessor::on_detach(const std::shared_ptr<Buffer>& /*buffer*/)
33{
34 if (m_target) {
35 m_target->release_owner(this);
36 }
37}
38
39void NodeFeedProcessor::set_target(std::shared_ptr<Nodes::StreamReaderNode> target)
40{
41 if (m_target) {
42 m_target->release_owner(this);
43 }
44 m_target = std::move(target);
45}
46
47}
void set_target(std::shared_ptr< Nodes::StreamReaderNode > target)
std::shared_ptr< Nodes::StreamReaderNode > m_target
NodeFeedProcessor(std::shared_ptr< Nodes::StreamReaderNode > target)
void processing_function(const std::shared_ptr< Buffer > &buffer) override
The core processing function that must be implemented by derived classes.
void on_attach(const std::shared_ptr< Buffer > &buffer) override
Called when this processor is attached to a buffer.
void on_detach(const std::shared_ptr< Buffer > &buffer) override
Called when this processor is detached from a buffer.