MayaFlux 0.3.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
NodeFeedProcessor.hpp
Go to the documentation of this file.
1#pragma once
2
4
5namespace MayaFlux::Nodes {
6class StreamReaderNode;
7}
8
9namespace MayaFlux::Buffers {
10
11/**
12 * @class NodeFeedProcessor
13 * @brief Processor that feeds AudioBuffer data into a StreamReaderNode
14 *
15 * Attach to any AudioBuffer's processing chain. Each cycle it calls
16 * set_data() on the target StreamReaderNode with the buffer's contents.
17 * The feeder claims ownership on first write; only one feeder can
18 * write to a given StreamReaderNode at a time. Setting a new target
19 * releases the previous one.
20 */
21class MAYAFLUX_API NodeFeedProcessor : public BufferProcessor {
22public:
23 explicit NodeFeedProcessor(std::shared_ptr<Nodes::StreamReaderNode> target);
24
25 void processing_function(const std::shared_ptr<Buffer>& buffer) override;
26
27 void on_attach(const std::shared_ptr<Buffer>& buffer) override;
28 void on_detach(const std::shared_ptr<Buffer>& buffer) override;
29
30 void set_target(std::shared_ptr<Nodes::StreamReaderNode> target);
31
32private:
33 std::shared_ptr<Nodes::StreamReaderNode> m_target;
34};
35
36}
Central computational transformation interface for continuous buffer processing.
std::shared_ptr< Nodes::StreamReaderNode > m_target
Processor that feeds AudioBuffer data into a StreamReaderNode.
Contains the node-based computational processing system components.
Definition Chronie.hpp:11