Zrythm struct

To be used throughout the program.

Contents

Everything here should be global and function regardless of the project.

Public variables

const char* exe_path
argv[0].
PluginManager* plugin_manager
Manages plugins (loading, instantiating, etc.)
Settings* settings
Application settings.
Project* project
Project data.
char* recent_projects
+1 to ensure last element is NULL in case full.
char** templates
NULL terminated array of project template absolute paths.
bool opening_template
Whether the open file is a template to be used to create a new project from.
bool creating_project
Whether creating a new project, either from a template or blank.
char* create_project_path
Path to create a project in, including its title.
char* open_filename
Filename to open passed through the command line.
RecordingManager* recording_manager
Recording manager.
FileManager* file_manager
File manager.
Symap* symap
String interner for internal things.
ObjectUtils* object_utils
Object utils.
bool debug
In debug mode or not (determined by GSetting).
bool testing
Used when running the tests.
bool generating_project
Whether this is a dummy instance used when generating projects.
double progress
Log settings.
bool have_ui
1 if Zrythm has a UI, 0 if headless (eg, when unit-testing).
bool use_optimized_dsp
Whether to use optimized DSP when available.
char* testing_dir
Zrythm directory used during unit tests.
char* version
Cached version (without 'v').

Variable documentation

Project* Zrythm::project

Project data.

This is what should be exported/imported when saving/loading projects.

The only reason this is a pointer is to easily deserialize.

char* Zrythm::open_filename

Filename to open passed through the command line.

Used only when a filename is passed. E.g., zrytm myproject.xml

bool Zrythm::testing

Used when running the tests.

This is set by the TESTING environment variable.

double Zrythm::progress

Log settings.

Progress done (0.0 ~ 1.0).

To be used in things like the splash screen, loading projects, etc.