Zrythm
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
graph.h File Reference

Routing graph. More...

#include "dsp/graph_node.h"
#include "utils/types.h"
#include "zix/sem.h"
#include <pthread.h>
Include dependency graph for graph.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  Graph
 Graph. More...
 

Macros

#define mpmc_queue_push_back_node(q, x)   mpmc_queue_push_back (q, (void *) x)
 
#define mpmc_queue_dequeue_node(q, x)   mpmc_queue_dequeue (q, (void *) x)
 
#define MAX_GRAPH_THREADS   128
 

Functions

void graph_print (Graph *graph)
 
void graph_destroy (Graph *graph)
 
GraphNodegraph_find_node_from_port (const Graph *self, const Port *port)
 
GraphNodegraph_find_node_from_plugin (const Graph *self, const Plugin *pl)
 
GraphNodegraph_find_node_from_track (const Graph *self, const Track *track, bool use_setup_nodes)
 
GraphNodegraph_find_node_from_fader (const Graph *self, const Fader *fader)
 
GraphNodegraph_find_node_from_prefader (const Graph *self, const Fader *prefader)
 
GraphNodegraph_find_node_from_sample_processor (const Graph *self, const SampleProcessor *sample_processor)
 
GraphNodegraph_find_node_from_monitor_fader (const Graph *self, const Fader *fader)
 
GraphNodegraph_find_node_from_modulator_macro_processor (const Graph *self, const ModulatorMacroProcessor *processor)
 
GraphNodegraph_find_node_from_channel_send (const Graph *self, const ChannelSend *send)
 
GraphNodegraph_find_initial_processor_node (const Graph *self)
 
GraphNodegraph_find_hw_processor_node (const Graph *self, const HardwareProcessor *processor)
 
NONNULL GraphNodegraph_create_node (Graph *self, GraphNodeType type, void *data)
 Creates a new node, adds it to the graph and returns it.
 
nframes_t graph_get_max_route_playback_latency (Graph *graph, bool use_setup_nodes)
 Returns the max playback latency of the trigger nodes.
 
HOT void graph_on_reached_terminal_node (Graph *self)
 Called from a terminal node (from the Graph worked-thread) to indicate it has completed processing.
 
void graph_update_latencies (Graph *self, bool use_setup_nodes)
 
void graph_setup (Graph *self, const int drop_unnecessary_ports, const int rechain)
 
bool graph_validate_with_connection (Graph *self, const Port *src, const Port *dest)
 Adds a new connection for the given src and dest ports and validates the graph.
 
int graph_start (Graph *graph)
 Starts as many threads as there are cores.
 
Graphgraph_new_full (Router *router, SampleProcessor *sample_processor)
 Returns a new graph.
 
Graphgraph_new (Router *router)
 
void graph_terminate (Graph *self)
 Tell all threads to terminate.
 
void graph_free (Graph *self)
 Frees the graph and its members.
 

Detailed Description

Routing graph.

Definition in file graph.h.