57 std::shared_ptr<Nodes::Node>
node;
59 std::shared_ptr<Nodes::Network::NodeNetwork>
network;
60 std::function<void(std::vector<double>&)>
callable;
63 std::atomic_flag raw_dirty = ATOMIC_FLAG_INIT;
84 void bind_node(uint32_t series_index,
85 std::shared_ptr<Nodes::Node> node);
96 void bind_audio_buffer(uint32_t series_index,
97 std::shared_ptr<Buffers::AudioBuffer> buffer);
108 void bind_network(uint32_t series_index,
109 std::shared_ptr<Nodes::Network::NodeNetwork>
network);
121 void bind_callable(uint32_t series_index,
122 std::function<
void(std::vector<double>&)> fn);
133 void set_raw(uint32_t series_index, std::vector<double> data);
139 void unbind(uint32_t series_index);
153 void set_series_semantics(uint32_t series_index,
157 [[nodiscard]]
bool has_binding(uint32_t series_index)
const;
163 void on_attach(
const std::shared_ptr<SignalSourceContainer>& container)
override;
164 void on_detach(
const std::shared_ptr<SignalSourceContainer>& container)
override;
173 void process(
const std::shared_ptr<SignalSourceContainer>& container)
override;
177 return m_processing.load(std::memory_order_acquire);
181 void acquire_from_node(SeriesBinding&
b, std::vector<double>& series);
182 void acquire_from_audio_buffer(SeriesBinding&
b, std::vector<double>& series);
183 void acquire_from_network(SeriesBinding&
b, std::vector<double>& series);
184 void acquire_from_callable(SeriesBinding&
b, std::vector<double>& series);
185 void acquire_from_raw(SeriesBinding&
b, std::vector<double>& series);
188 std::atomic<bool> m_processing {
false };