Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
project_graph_builder.h
1// SPDX-FileCopyrightText: © 2025 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
4#pragma once
5
6#include "dsp/graph_builder.h"
7#include "dsp/port.h"
8
9namespace zrythm::structure::project
10{
11
12class Project;
13
14class ProjectGraphBuilder final : public dsp::graph::IGraphBuilder
15{
16public:
17 ProjectGraphBuilder (Project &project) : project_ (&project) { }
18
27 Project &project,
28 const dsp::Port &src,
29 const dsp::Port &dest);
30
31private:
32 void build_graph_impl (dsp::graph::Graph &graph) override;
33
34private:
35 Project * project_{};
36};
37}
A base class for ports used for connecting processors in the DSP graph.
Definition port.h:30
The Graph class represents a graph of DSP nodes.
Definition graph.h:20
Interface for building a graph of nodes.
static bool can_ports_be_connected(Project &project, const dsp::Port &src, const dsp::Port &dest)
Adds a new connection for the given src and dest ports and validates the graph.
Core functionality of a Zrythm project.
Definition project.h:45