Zrythm
a highly automated and intuitive digital audio workstation
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
General

Uncategorized. More...

Data Structures

class  ZrythmDirectoryManager
 
class  Zrythm
 To be used throughout the program. More...
 
struct  ZrythmAppUiMessage
 UI message for the message queue. More...
 
struct  ZrythmApp
 The global struct. More...
 

Macros

#define ZRYTHM_PROJECTS_DIR   "projects"
 
#define MAX_RECENT_PROJECTS   20
 
#define DEBUGGING   (G_UNLIKELY (gZrythm && gZrythm->debug))
 
#define ZRYTHM_TESTING   (g_test_initialized ())
 
#define ZRYTHM_GENERATING_PROJECT   (gZrythm->generating_project)
 
#define ZRYTHM_HAVE_UI   (gZrythm && gZrythm->have_ui_)
 
#define ZRYTHM_USE_OPTIMIZED_DSP   false
 

Enumerations

enum  ZrythmDirType {
  ZRYTHM_DIR_SYSTEM_PREFIX , ZRYTHM_DIR_SYSTEM_BINDIR , ZRYTHM_DIR_SYSTEM_PARENT_DATADIR , ZRYTHM_DIR_SYSTEM_PARENT_LIBDIR ,
  ZRYTHM_DIR_SYSTEM_ZRYTHM_LIBDIR , ZRYTHM_DIR_SYSTEM_BUNDLED_PLUGINSDIR , ZRYTHM_DIR_SYSTEM_LOCALEDIR , ZRYTHM_DIR_SYSTEM_SOURCEVIEW_LANGUAGE_SPECS_DIR ,
  ZRYTHM_DIR_SYSTEM_BUNDLED_SOURCEVIEW_LANGUAGE_SPECS_DIR , ZRYTHM_DIR_SYSTEM_ZRYTHM_DATADIR , ZRYTHM_DIR_SYSTEM_SAMPLESDIR , ZRYTHM_DIR_SYSTEM_SCRIPTSDIR ,
  ZRYTHM_DIR_SYSTEM_THEMESDIR , ZRYTHM_DIR_SYSTEM_THEMES_CSS_DIR , ZRYTHM_DIR_SYSTEM_THEMES_ICONS_DIR , ZRYTHM_DIR_SYSTEM_SPECIAL_LV2_PLUGINS_DIR ,
  ZRYTHM_DIR_SYSTEM_FONTSDIR , ZRYTHM_DIR_SYSTEM_TEMPLATES , ZRYTHM_DIR_USER_TOP , ZRYTHM_DIR_USER_PROJECTS ,
  ZRYTHM_DIR_USER_TEMPLATES , ZRYTHM_DIR_USER_THEMES , ZRYTHM_DIR_USER_THEMES_CSS , ZRYTHM_DIR_USER_THEMES_ICONS ,
  ZRYTHM_DIR_USER_SCRIPTS , ZRYTHM_DIR_USER_LOG , ZRYTHM_DIR_USER_PROFILING , ZRYTHM_DIR_USER_GDB ,
  ZRYTHM_DIR_USER_BACKTRACE
}
 Type of Zrythm directory. More...
 

Functions

ZrythmAppUiMessagezrythm_app_ui_message_new (GtkMessageType type, const char *msg)
 
void zrythm_app_ui_message_free (ZrythmAppUiMessage *self)
 
ZrythmApp * zrythm_app_new (int argc, const char **argv)
 Creates the Zrythm GApplication.
 
void zrythm_app_set_font_scale (ZrythmApp *self, double font_scale)
 
void zrythm_app_check_for_updates (ZrythmApp *self)
 Handles the logic for checking for updates on startup.
 
int zrythm_app_prompt_for_project_func (ZrythmApp *self)
 Unlike the init thread, this will run in the main GTK thread.
 
ZrythmApp ** zrythm_app_get (void)
 Returns a pointer to the global zrythm_app.
 
bool zrythm_app_check_and_show_trial_limit_error (ZrythmApp *self)
 Shows the trial limitation error message.
 
void * zrythm_app_init_thread (ZrythmApp *self)
 
void zrythm_exit_response_callback (AdwDialog *dialog, gpointer user_data)
 To be used to exit Zrythm using the "response" signal on a message dialog.
 

Variables

std::unique_ptr< ZrythmgZrythm
 Global variable, should be available to all files.
 
ZrythmApp * zrythm_app
 Global variable, should be available to all files.
 

Detailed Description

Uncategorized.

Macro Definition Documentation

◆ DEBUGGING

#define DEBUGGING   (G_UNLIKELY (gZrythm && gZrythm->debug))

Definition at line 45 of file zrythm.h.

◆ MAX_RECENT_PROJECTS

#define MAX_RECENT_PROJECTS   20

Definition at line 44 of file zrythm.h.

◆ ZRYTHM_GENERATING_PROJECT

#define ZRYTHM_GENERATING_PROJECT   (gZrythm->generating_project)

Definition at line 47 of file zrythm.h.

◆ ZRYTHM_HAVE_UI

#define ZRYTHM_HAVE_UI   (gZrythm && gZrythm->have_ui_)

Definition at line 48 of file zrythm.h.

◆ ZRYTHM_PROJECTS_DIR

#define ZRYTHM_PROJECTS_DIR   "projects"

Definition at line 42 of file zrythm.h.

◆ ZRYTHM_TESTING

#define ZRYTHM_TESTING   (g_test_initialized ())

Definition at line 46 of file zrythm.h.

◆ ZRYTHM_USE_OPTIMIZED_DSP

#define ZRYTHM_USE_OPTIMIZED_DSP   false

Definition at line 53 of file zrythm.h.

Enumeration Type Documentation

◆ ZrythmDirType

Type of Zrythm directory.

Enumerator
ZRYTHM_DIR_SYSTEM_PREFIX 

The prefix, or in the case of windows installer the root dir (C/program files/zrythm), or in the case of macos installer the bundle path.

In all cases, "share" is expected to be found in this dir.

ZRYTHM_DIR_SYSTEM_BINDIR 

"bin" under ZRYTHM_DIR_SYSTEM_PREFIX.

ZRYTHM_DIR_SYSTEM_PARENT_DATADIR 

"share" under ZRYTHM_DIR_SYSTEM_PREFIX.

ZRYTHM_DIR_SYSTEM_PARENT_LIBDIR 

libdir name under ZRYTHM_DIR_SYSTEM_PREFIX.

ZRYTHM_DIR_SYSTEM_ZRYTHM_LIBDIR 

libdir/zrythm

ZRYTHM_DIR_SYSTEM_BUNDLED_PLUGINSDIR 

libdir/zrythm/lv2

ZRYTHM_DIR_SYSTEM_LOCALEDIR 

Localization under "share".

ZRYTHM_DIR_SYSTEM_SOURCEVIEW_LANGUAGE_SPECS_DIR 

"gtksourceview-5/language-specs" under "share".

ZRYTHM_DIR_SYSTEM_BUNDLED_SOURCEVIEW_LANGUAGE_SPECS_DIR 

"gtksourceview-5/language-specs" under "share/zrythm".

ZRYTHM_DIR_SYSTEM_ZRYTHM_DATADIR 

share/zrythm

ZRYTHM_DIR_SYSTEM_SAMPLESDIR 

Samples.

ZRYTHM_DIR_SYSTEM_SCRIPTSDIR 

Scripts.

ZRYTHM_DIR_SYSTEM_THEMESDIR 

Themes.

ZRYTHM_DIR_SYSTEM_THEMES_CSS_DIR 

CSS themes.

ZRYTHM_DIR_SYSTEM_THEMES_ICONS_DIR 

Icon themes.

ZRYTHM_DIR_SYSTEM_SPECIAL_LV2_PLUGINS_DIR 

Special external Zrythm plugins path (not part of the Zrythm source code).

Used for ZLFO and other plugins.

ZRYTHM_DIR_SYSTEM_FONTSDIR 

The directory fonts/zrythm under datadir.

ZRYTHM_DIR_SYSTEM_TEMPLATES 

Project templates.

ZRYTHM_DIR_USER_TOP 

Main zrythm directory from gsettings.

ZRYTHM_DIR_USER_PROJECTS 

Subdirs of ZRYTHM_DIR_USER_TOP.

ZRYTHM_DIR_USER_THEMES_CSS 

User CSS themes.

ZRYTHM_DIR_USER_THEMES_ICONS 

User icon themes.

ZRYTHM_DIR_USER_SCRIPTS 

User scripts.

ZRYTHM_DIR_USER_LOG 

Log files.

ZRYTHM_DIR_USER_PROFILING 

Profiling files.

ZRYTHM_DIR_USER_GDB 

Gdb backtrace files.

ZRYTHM_DIR_USER_BACKTRACE 

Backtraces.

Definition at line 59 of file zrythm.h.

Function Documentation

◆ zrythm_app_check_and_show_trial_limit_error()

bool zrythm_app_check_and_show_trial_limit_error ( ZrythmApp * self)

Shows the trial limitation error message.

Returns
Whether the limit was reached.

◆ zrythm_app_new()

ZrythmApp * zrythm_app_new ( int argc,
const char ** argv )

Creates the Zrythm GApplication.

This also initializes the Zrythm struct.

◆ zrythm_app_prompt_for_project_func()

int zrythm_app_prompt_for_project_func ( ZrythmApp * self)

Unlike the init thread, this will run in the main GTK thread.

Do not put expensive logic here.

This should be ran after the expensive initialization has finished.