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

Contains all of the info that will be serialized into a project file. More...

#include <project.h>

Collaboration diagram for Project:

Public Member Functions

NONNULL bool project_has_unsaved_changes (const Project *self)
 

Data Fields

char * title
 Project title.
 
char * datetime_str
 Datetime string to add to the project file.
 
char * dir
 Path to save the project in.
 
char * backup_dir
 Backup dir to save the project during the current save call.
 
UndoManagerundo_manager
 
Tracklisttracklist
 
ClipEditorclip_editor
 Backend for the widget.
 
Timelinetimeline
 Timeline widget backend.
 
SnapGridsnap_grid_timeline
 Snap/Grid info for the timeline.
 
SnapGridsnap_grid_editor
 Snap/Grid info for the editor.
 
QuantizeOptionsquantize_opts_timeline
 Quantize info for the timeline.
 
QuantizeOptionsquantize_opts_editor
 Quantize info for the piano roll.
 
AutomationSelectionsautomation_selections
 Selected objects in the AutomationArrangerWidget.
 
AudioSelectionsaudio_selections
 Selected objects in the audio editor.
 
ChordSelectionschord_selections
 Selected objects in the ChordObjectArrangerWidget.
 
TimelineSelectionstimeline_selections
 Selected objects in the TimelineArrangerWidget.
 
MidiArrangerSelectionsmidi_arranger_selections
 Selected MidiNote's in the MidiArrangerWidget.
 
TracklistSelectionstracklist_selections
 Selected Track's.
 
MixerSelectionsmixer_selections
 Plugin selections in the Mixer.
 
double timeline_zoom
 Zoom levels.
 
double piano_roll_zoom
 
RegionLinkGroupManagerregion_link_group_manager
 Manager for region link groups.
 
PortConnectionsManagerport_connections_manager
 
AudioEngineaudio_engine
 The audio backend.
 
MidiMappingsmidi_mappings
 MIDI bindings.
 
Tool tool
 Currently selected tool (select - normal, select - stretch, edit, delete, ramp, audition)
 
bool loading_from_backup
 Whether the current is currently being loaded from a backup file.
 
bool loaded
 If a project is currently loaded or not.
 
ProjectSelectionType last_selection
 The last thing selected in the GUI.
 
char * version
 Zrythm version, for serialization.
 
ZixSem save_sem
 Semaphore used to block saving.
 
UndoableActionlast_saved_action
 Used to check if the project has unsaved changes.
 
gint64 last_successful_autosave_time
 Last successful autosave timestamp.
 
UndoableActionlast_action_in_last_successful_autosave
 Last undoable action in the previous successful autosave.
 
int format_major
 Used when deserializing projects.
 
int format_minor
 

Detailed Description

Contains all of the info that will be serialized into a project file.

TODO create a UserInterface struct and move things that are only relevant to the UI there.

Definition at line 144 of file project.h.

Field Documentation

◆ audio_engine

AudioEngine* Project::audio_engine

The audio backend.

Definition at line 235 of file project.h.

◆ audio_selections

AudioSelections* Project::audio_selections

Selected objects in the audio editor.

Definition at line 195 of file project.h.

◆ automation_selections

AutomationSelections* Project::automation_selections

Selected objects in the AutomationArrangerWidget.

Definition at line 190 of file project.h.

◆ backup_dir

char* Project::backup_dir

Backup dir to save the project during the current save call.

For example, Project::dir /backups/myproject.bak3.

Definition at line 162 of file project.h.

◆ chord_selections

ChordSelections* Project::chord_selections

Selected objects in the ChordObjectArrangerWidget.

Definition at line 201 of file project.h.

◆ clip_editor

ClipEditor* Project::clip_editor

Backend for the widget.

Definition at line 169 of file project.h.

◆ datetime_str

char* Project::datetime_str

Datetime string to add to the project file.

Definition at line 150 of file project.h.

◆ dir

char* Project::dir

Path to save the project in.

Definition at line 153 of file project.h.

◆ format_major

int Project::format_major

Used when deserializing projects.

Definition at line 293 of file project.h.

◆ format_minor

int Project::format_minor

Definition at line 294 of file project.h.

◆ last_action_in_last_successful_autosave

UndoableAction* Project::last_action_in_last_successful_autosave

Last undoable action in the previous successful autosave.

This is used to avoid saving unnecessary backups.

Definition at line 290 of file project.h.

◆ last_saved_action

UndoableAction* Project::last_saved_action

Used to check if the project has unsaved changes.

Definition at line 280 of file project.h.

◆ last_selection

ProjectSelectionType Project::last_selection

The last thing selected in the GUI.

Used in inspector_widget_refresh.

Definition at line 270 of file project.h.

◆ last_successful_autosave_time

gint64 Project::last_successful_autosave_time

Last successful autosave timestamp.

Definition at line 283 of file project.h.

◆ loaded

bool Project::loaded

If a project is currently loaded or not.

This is useful so that we know if we need to tear down when loading a new project while another one is loaded.

Definition at line 263 of file project.h.

◆ loading_from_backup

bool Project::loading_from_backup

Whether the current is currently being loaded from a backup file.

This is useful when instantiating plugins from state and should be set to false after the project is loaded.

Definition at line 254 of file project.h.

◆ midi_arranger_selections

MidiArrangerSelections* Project::midi_arranger_selections

Selected MidiNote's in the MidiArrangerWidget.

Definition at line 211 of file project.h.

◆ midi_mappings

MidiMappings* Project::midi_mappings

MIDI bindings.

Definition at line 238 of file project.h.

◆ mixer_selections

MixerSelections* Project::mixer_selections

Plugin selections in the Mixer.

Definition at line 221 of file project.h.

◆ piano_roll_zoom

double Project::piano_roll_zoom

Definition at line 225 of file project.h.

◆ port_connections_manager

PortConnectionsManager* Project::port_connections_manager

Definition at line 230 of file project.h.

◆ quantize_opts_editor

QuantizeOptions* Project::quantize_opts_editor

Quantize info for the piano roll.

Definition at line 184 of file project.h.

◆ quantize_opts_timeline

QuantizeOptions* Project::quantize_opts_timeline

Quantize info for the timeline.

Definition at line 181 of file project.h.

◆ region_link_group_manager

RegionLinkGroupManager* Project::region_link_group_manager

Manager for region link groups.

Definition at line 228 of file project.h.

◆ save_sem

ZixSem Project::save_sem

Semaphore used to block saving.

Definition at line 276 of file project.h.

◆ snap_grid_editor

SnapGrid* Project::snap_grid_editor

Snap/Grid info for the editor.

Definition at line 178 of file project.h.

◆ snap_grid_timeline

SnapGrid* Project::snap_grid_timeline

Snap/Grid info for the timeline.

Definition at line 175 of file project.h.

◆ timeline

Timeline* Project::timeline

Timeline widget backend.

Definition at line 172 of file project.h.

◆ timeline_selections

TimelineSelections* Project::timeline_selections

Selected objects in the TimelineArrangerWidget.

Definition at line 206 of file project.h.

◆ timeline_zoom

double Project::timeline_zoom

Zoom levels.

TODO & move to clip_editor

Definition at line 224 of file project.h.

◆ title

char* Project::title

Project title.

Definition at line 147 of file project.h.

◆ tool

Tool Project::tool

Currently selected tool (select - normal, select - stretch, edit, delete, ramp, audition)

Definition at line 244 of file project.h.

◆ tracklist

Tracklist* Project::tracklist

Definition at line 166 of file project.h.

◆ tracklist_selections

TracklistSelections* Project::tracklist_selections

Selected Track's.

Definition at line 216 of file project.h.

◆ undo_manager

UndoManager* Project::undo_manager

Definition at line 164 of file project.h.

◆ version

char* Project::version

Zrythm version, for serialization.

Definition at line 273 of file project.h.


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