153 [[nodiscard]]
virtual std::optional<std::vector<double>> get_audio_buffer()
const;
205 [[nodiscard]]
virtual std::unordered_map<std::string, std::string>
206 get_metadata()
const;
256 virtual void map_parameter(
const std::string& param_name,
257 const std::shared_ptr<Node>& source,
258 MappingMode mode = MappingMode::BROADCAST);
268 map_parameter(
const std::string& param_name,
269 const std::shared_ptr<NodeNetwork>& source_network);
273 virtual void unmap_parameter(
const std::string& param_name);
286 void add_channel_usage(uint32_t channel_id);
292 void remove_channel_usage(uint32_t channel_id);
299 [[nodiscard]]
bool is_registered_on_channel(uint32_t channel_id)
const;
305 [[nodiscard]] std::vector<uint32_t> get_registered_channels()
const;
321 [[nodiscard]]
bool is_processed_this_cycle()
const;
326 void mark_processing(
bool processing);
331 void mark_processed(
bool processed);
337 [[nodiscard]]
bool is_processing()
const;
343 void request_reset_from_channel(uint32_t channel_id);
352 bool m_enabled =
true;
353 bool m_initialized =
false;
358 void ensure_initialized();
370 static std::unordered_map<size_t, std::vector<size_t>>
371 build_grid_2d_neighbors(
size_t width,
size_t height);
380 static std::unordered_map<size_t, std::vector<size_t>>
381 build_grid_3d_neighbors(
size_t width,
size_t height,
size_t depth);
388 static std::unordered_map<size_t, std::vector<size_t>>
389 build_ring_neighbors(
size_t count);
396 static std::unordered_map<size_t, std::vector<size_t>>
397 build_chain_neighbors(
size_t count);
415 std::atomic<uint32_t> m_channel_mask { 0 };
416 std::atomic<uint32_t> m_pending_reset_mask { 0 };
419 std::atomic<bool> m_processing_state {
false };
420 std::atomic<bool> m_processed_this_cycle {
false };
430 static std::string topology_to_string(
Topology topo);
432 static std::string output_mode_to_string(
OutputMode mode);