Zrythm
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
Graph Struct Reference

Graph. More...

#include <dsp/graph.h>

Collaboration diagram for Graph:

Data Fields

Routerrouter
 Pointer back to router for convenience.
 
int destroying
 Flag to indicate if graph is currently getting destroyed.
 
GHashTable * graph_nodes
 List of all graph nodes (only used for memory management)
 
GraphNodebpm_node
 
GraphNodebeats_per_bar_node
 
GraphNodebeat_unit_node
 
GraphNode ** init_trigger_list
 Nodes without incoming edges.
 
size_t n_init_triggers
 
gint n_terminal_nodes
 Number of graph nodes without an outgoing edge.
 
GraphNode ** terminal_nodes
 
volatile gint terminal_refcnt
 Remaining unprocessed terminal nodes in this cycle.
 
ZixSem callback_start
 Synchronization with main process callback.
 
ZixSem callback_done
 
ZixSem trigger
 Wake up graph node process threads.
 
MPMCQueuetrigger_queue
 Queue containing nodes that can be processed.
 
volatile guint trigger_queue_size
 Number of entries in trigger queue.
 
volatile gint terminate
 flag to exit, terminate all process-threads
 
volatile guint idle_thread_cnt
 Number of threads waiting for work.
 
GHashTable * setup_graph_nodes
 Chain used to setup in the background.
 
GraphNode ** setup_init_trigger_list
 
size_t num_setup_init_triggers
 
GraphNode ** setup_terminal_nodes
 Used only when constructing the graph so we can traverse the graph backwards to calculate the playback latencies.
 
size_t num_setup_terminal_nodes
 
int initial_processor
 Dummy member to make lookups work.
 
GraphThreadthreads [MAX_GRAPH_THREADS]
 
GraphThreadmain_thread
 
gint num_threads
 
GPtrArray * external_out_ports
 An array of pointers to ports that are exposed to the backend and are outputs.
 

Detailed Description

Graph.

Definition at line 70 of file graph.h.

Field Documentation

◆ beat_unit_node

GraphNode* Graph::beat_unit_node

Definition at line 87 of file graph.h.

◆ beats_per_bar_node

GraphNode* Graph::beats_per_bar_node

Definition at line 86 of file graph.h.

◆ bpm_node

GraphNode* Graph::bpm_node

Definition at line 85 of file graph.h.

◆ callback_done

ZixSem Graph::callback_done

Definition at line 107 of file graph.h.

◆ callback_start

ZixSem Graph::callback_start

Synchronization with main process callback.

Definition at line 106 of file graph.h.

◆ destroying

int Graph::destroying

Flag to indicate if graph is currently getting destroyed.

Definition at line 77 of file graph.h.

◆ external_out_ports

GPtrArray* Graph::external_out_ports

An array of pointers to ports that are exposed to the backend and are outputs.

Used to clear their buffers when returning early from the processing cycle.

Definition at line 156 of file graph.h.

◆ graph_nodes

GHashTable* Graph::graph_nodes

List of all graph nodes (only used for memory management)

key = internal pointer, value = graph node.

Definition at line 82 of file graph.h.

◆ idle_thread_cnt

volatile guint Graph::idle_thread_cnt

Number of threads waiting for work.

Definition at line 123 of file graph.h.

◆ init_trigger_list

GraphNode** Graph::init_trigger_list

Nodes without incoming edges.

These run concurrently at the start of each cycle to kick off processing

Definition at line 92 of file graph.h.

◆ initial_processor

int Graph::initial_processor

Dummy member to make lookups work.

Definition at line 141 of file graph.h.

◆ main_thread

GraphThread* Graph::main_thread

Definition at line 146 of file graph.h.

◆ n_init_triggers

size_t Graph::n_init_triggers

Definition at line 93 of file graph.h.

◆ n_terminal_nodes

gint Graph::n_terminal_nodes

Number of graph nodes without an outgoing edge.

Definition at line 98 of file graph.h.

◆ num_setup_init_triggers

size_t Graph::num_setup_init_triggers

Definition at line 132 of file graph.h.

◆ num_setup_terminal_nodes

size_t Graph::num_setup_terminal_nodes

Definition at line 138 of file graph.h.

◆ num_threads

gint Graph::num_threads

Definition at line 147 of file graph.h.

◆ router

Router* Graph::router

Pointer back to router for convenience.

Definition at line 73 of file graph.h.

◆ setup_graph_nodes

GHashTable* Graph::setup_graph_nodes

Chain used to setup in the background.

This is applied and cleared by graph_rechain() key = internal pointer, value = graph node.

Definition at line 129 of file graph.h.

◆ setup_init_trigger_list

GraphNode** Graph::setup_init_trigger_list

Definition at line 131 of file graph.h.

◆ setup_terminal_nodes

GraphNode** Graph::setup_terminal_nodes

Used only when constructing the graph so we can traverse the graph backwards to calculate the playback latencies.

Definition at line 137 of file graph.h.

◆ terminal_nodes

GraphNode** Graph::terminal_nodes

Definition at line 99 of file graph.h.

◆ terminal_refcnt

volatile gint Graph::terminal_refcnt

Remaining unprocessed terminal nodes in this cycle.

Definition at line 103 of file graph.h.

◆ terminate

volatile gint Graph::terminate

flag to exit, terminate all process-threads

Definition at line 120 of file graph.h.

◆ threads

GraphThread* Graph::threads[MAX_GRAPH_THREADS]

Definition at line 145 of file graph.h.

◆ trigger

ZixSem Graph::trigger

Wake up graph node process threads.

Definition at line 110 of file graph.h.

◆ trigger_queue

MPMCQueue* Graph::trigger_queue

Queue containing nodes that can be processed.

Definition at line 114 of file graph.h.

◆ trigger_queue_size

volatile guint Graph::trigger_queue_size

Number of entries in trigger queue.

Definition at line 117 of file graph.h.


The documentation for this struct was generated from the following file: