Zrythm
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
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.
 
SelectionType 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 157 of file project.h.

Field Documentation

◆ audio_engine

AudioEngine* Project::audio_engine

The audio backend.

Definition at line 248 of file project.h.

◆ audio_selections

AudioSelections* Project::audio_selections

Selected objects in the audio editor.

Definition at line 208 of file project.h.

◆ automation_selections

AutomationSelections* Project::automation_selections

Selected objects in the AutomationArrangerWidget.

Definition at line 203 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 175 of file project.h.

◆ chord_selections

ChordSelections* Project::chord_selections

Selected objects in the ChordObjectArrangerWidget.

Definition at line 214 of file project.h.

◆ clip_editor

ClipEditor* Project::clip_editor

Backend for the widget.

Definition at line 182 of file project.h.

◆ datetime_str

char* Project::datetime_str

Datetime string to add to the project file.

Definition at line 163 of file project.h.

◆ dir

char* Project::dir

Path to save the project in.

Definition at line 166 of file project.h.

◆ format_major

int Project::format_major

Used when deserializing projects.

Definition at line 306 of file project.h.

◆ format_minor

int Project::format_minor

Definition at line 307 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 303 of file project.h.

◆ last_saved_action

UndoableAction* Project::last_saved_action

Used to check if the project has unsaved changes.

Definition at line 293 of file project.h.

◆ last_selection

SelectionType Project::last_selection

The last thing selected in the GUI.

Used in inspector_widget_refresh.

Definition at line 283 of file project.h.

◆ last_successful_autosave_time

gint64 Project::last_successful_autosave_time

Last successful autosave timestamp.

Definition at line 296 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 276 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 267 of file project.h.

◆ midi_arranger_selections

MidiArrangerSelections* Project::midi_arranger_selections

Selected MidiNote's in the MidiArrangerWidget.

Definition at line 224 of file project.h.

◆ midi_mappings

MidiMappings* Project::midi_mappings

MIDI bindings.

Definition at line 251 of file project.h.

◆ mixer_selections

MixerSelections* Project::mixer_selections

Plugin selections in the Mixer.

Definition at line 234 of file project.h.

◆ piano_roll_zoom

double Project::piano_roll_zoom

Definition at line 238 of file project.h.

◆ port_connections_manager

PortConnectionsManager* Project::port_connections_manager

Definition at line 243 of file project.h.

◆ quantize_opts_editor

QuantizeOptions* Project::quantize_opts_editor

Quantize info for the piano roll.

Definition at line 197 of file project.h.

◆ quantize_opts_timeline

QuantizeOptions* Project::quantize_opts_timeline

Quantize info for the timeline.

Definition at line 194 of file project.h.

◆ region_link_group_manager

RegionLinkGroupManager* Project::region_link_group_manager

Manager for region link groups.

Definition at line 241 of file project.h.

◆ save_sem

ZixSem Project::save_sem

Semaphore used to block saving.

Definition at line 289 of file project.h.

◆ snap_grid_editor

SnapGrid* Project::snap_grid_editor

Snap/Grid info for the editor.

Definition at line 191 of file project.h.

◆ snap_grid_timeline

SnapGrid* Project::snap_grid_timeline

Snap/Grid info for the timeline.

Definition at line 188 of file project.h.

◆ timeline

Timeline* Project::timeline

Timeline widget backend.

Definition at line 185 of file project.h.

◆ timeline_selections

TimelineSelections* Project::timeline_selections

Selected objects in the TimelineArrangerWidget.

Definition at line 219 of file project.h.

◆ timeline_zoom

double Project::timeline_zoom

Zoom levels.

TODO & move to clip_editor

Definition at line 237 of file project.h.

◆ title

char* Project::title

Project title.

Definition at line 160 of file project.h.

◆ tool

Tool Project::tool

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

Definition at line 257 of file project.h.

◆ tracklist

Tracklist* Project::tracklist

Definition at line 179 of file project.h.

◆ tracklist_selections

TracklistSelections* Project::tracklist_selections

Selected Track's.

Definition at line 229 of file project.h.

◆ undo_manager

UndoManager* Project::undo_manager

Definition at line 177 of file project.h.

◆ version

char* Project::version

Zrythm version, for serialization.

Definition at line 286 of file project.h.


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