Graph struct
#include <audio/graph.h>
Contents
- Reference
Public variables
- Router* router
- 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)
- GraphNode** init_trigger_list
- Nodes without incoming edges.
- gint n_terminal_nodes
- Number of graph nodes without an outgoing edge.
- volatile gint terminal_refcnt
- Remaining unprocessed terminal nodes in this cycle.
- ZixSem callback_start
- Synchronization with main process callback.
- ZixSem trigger
- Wake up graph node process threads.
- MPMCQueue* trigger_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_terminal_nodes
- Used only when constructing the graph so we can traverse the graph backwards to calculate the playback latencies.
- int initial_processor
- Dummy member to make lookups work.
- GPtrArray* external_out_ports
- An array of pointers to ports that are exposed to the backend and are outputs.
Variable documentation
GHashTable* Graph:: graph_nodes
List of all graph nodes (only used for memory management)
key = internal pointer, value = graph node.
GraphNode** Graph:: init_trigger_list
Nodes without incoming edges.
These run concurrently at the start of each cycle to kick off processing
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.
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.