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;
346 bool m_enabled =
true;
347 bool m_initialized =
false;
352 void ensure_initialized();
364 static std::unordered_map<size_t, std::vector<size_t>>
365 build_grid_2d_neighbors(
size_t width,
size_t height);
374 static std::unordered_map<size_t, std::vector<size_t>>
375 build_grid_3d_neighbors(
size_t width,
size_t height,
size_t depth);
382 static std::unordered_map<size_t, std::vector<size_t>>
383 build_ring_neighbors(
size_t count);
390 static std::unordered_map<size_t, std::vector<size_t>>
391 build_chain_neighbors(
size_t count);
409 std::atomic<uint32_t> m_channel_mask { 0 };
412 std::atomic<bool> m_processing_state {
false };
413 std::atomic<bool> m_processed_this_cycle {
false };
423 static std::string topology_to_string(
Topology topo);
425 static std::string output_mode_to_string(
OutputMode mode);