Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
Project Class Referencefinal

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

#include <src/gui/backend/backend/project.h>

Inheritance diagram for Project:
Collaboration diagram for Project:

Public Types

enum class  SelectionType {
  Tracklist , Timeline , Insert , MidiFX ,
  Instrument , Modulator , Editor
}
 Selection type, used for controlling which part of the interface is selected, for copy-paste, displaying info in the inspector, etc. More...
enum class  CompressionFlag { PROJECT_COMPRESS_FILE = 0 , PROJECT_DECOMPRESS_FILE = 0 , PROJECT_COMPRESS_DATA = 1 , PROJECT_DECOMPRESS_DATA = 1 }
 Flag to pass to project_compress() and project_decompress(). More...
using QuantizeOptions = zrythm::gui::old_dsp::QuantizeOptions
using TrackUuid = structure::tracks::TrackUuid
using PluginPtrVariant = plugins::PluginPtrVariant
using PluginRegistry = plugins::PluginRegistry

Public Member Functions

 Project (std::shared_ptr< juce::AudioDeviceManager > device_manager, QObject *parent=nullptr)
QString getTitle () const
void setTitle (const QString &title)
QString getDirectory () const
void setDirectory (const QString &directory)
structure::tracks::Tracklisttracklist () const
structure::scenes::ClipLauncherclipLauncher () const
structure::scenes::ClipPlaybackServiceclipPlaybackService () const
gui::backend::TrackSelectionManagertrackSelectionManager () const
gui::backend::PluginSelectionManagerpluginSelectionManager () const
structure::arrangement::TimelinegetTimeline () const
dsp::Metronomemetronome () const
dsp::TransportgetTransport () const
engine::session::ControlRoomcontrolRoom () const
dsp::AudioEngineengine () const
gui::backend::ToolgetTool () const
ClipEditorgetClipEditor () const
undo::UndoStackundoStack () const
zrythm::actions::ArrangerObjectCreatorarrangerObjectCreator () const
zrythm::actions::TrackCreatortrackCreator () const
actions::FileImporterfileImporter () const
actions::PluginImporterpluginImporter () const
dsp::TempoMapWrappergetTempoMap () const
dsp::SnapGridsnapGridTimeline () const
dsp::SnapGridsnapGridEditor () const
structure::arrangement::TempoObjectManagertempoObjectManager () const
Q_SIGNAL void titleChanged (const QString &title)
Q_SIGNAL void directoryChanged (const QString &directory)
Q_SIGNAL void aboutToBeDeleted ()
Q_INVOKABLE actions::ArrangerObjectSelectionOperatorcreateArrangerObjectSelectionOperator (QItemSelectionModel *selectionModel) const
fs::path get_path (ProjectPath path, bool backup) const
 Returns the requested project path as a newly allocated string.
auto * getArrangerObjectFactory () const
void save (const fs::path &_dir, bool is_backup, bool show_notification, bool async)
 Saves the project to a project file in the given dir.
void make_project_dirs (bool is_backup)
 Creates the project directories.
std::string get_existing_uncompressed_text (bool backup)
 Returns the uncompressed text representation of the saved project file.
bool has_unsaved_changes () const
Q_INVOKABLE Projectclone (bool for_backup) const
 Deep-clones the given project.
std::optional< fs::path > get_newer_backup ()
 Returns the filepath of a backup (directory), if any, if it has a newer timestamp than main project file.
Q_INVOKABLE void activate ()
 Connects things up, exposes ports to the backend, calculates the graph and begins processing.
void add_default_tracks ()
 Adds the default undeletable tracks to the project.
structure::tracks::FinalTrackDependencies get_final_track_dependencies () const
auto & get_file_audio_source_registry () const
auto & get_track_registry () const
auto & get_plugin_registry () const
auto & get_port_registry () const
auto & get_param_registry () const
auto & get_arranger_object_registry () const
std::optional< dsp::PortPtrVariant > find_port_by_id (const dsp::Port::Uuid &id) const
 Finds the Port corresponding to the identifier.
dsp::ProcessorParameterfind_param_by_id (const dsp::ProcessorParameter::Uuid &id) const
std::optional< plugins::PluginPtrVariant > find_plugin_by_id (plugins::Plugin::Uuid id) const
std::optional< zrythm::structure::tracks::TrackPtrVariant > find_track_by_id (structure::tracks::Track::Uuid id) const
std::optional< zrythm::structure::arrangement::ArrangerObjectPtrVariant > find_arranger_object_by_id (structure::arrangement::ArrangerObject::Uuid id) const
const auto & get_tempo_map () const

Static Public Member Functions

static Projectget_active_instance ()
static int autosave_cb (void *data)
 Autosave callback.
static void compress_or_decompress (bool compress, char **_dest, size_t *_dest_size, CompressionFlag dest_type, const QByteArray &src)
 Compresses/decompress a project from a file/data to a file/data.
static void compress (char **_dest, size_t *_dest_size, CompressionFlag dest_type, const QByteArray &src)
static void decompress (char **_dest, size_t *_dest_size, CompressionFlag dest_type, const QByteArray &src)

Data Fields

utils::Utf8String title_
 Project title.
utils::Utf8String datetime_str_
 Datetime string to add to the project file.
fs::path dir_
 Path to save the project in.
std::optional< fs::path > backup_dir_
 Backup dir to save the project during the current save call.
SteadyTimePoint last_successful_autosave_time_
 Last successful autosave timestamp.
std::binary_semaphore save_sem_ { 1 }
 Used to check if the project has unsaved changes.
utils::Utf8String version_
 Zrythm version, for serialization.
Project::SelectionType last_selection_ {}
 The last thing selected in the GUI.
bool loading_from_backup_ = false
 Whether the current is currently being loaded from a backup file.
std::shared_ptr< juce::AudioDeviceManager > device_manager_
gui::backend::Tooltool_ {}
 Currently selected tool (select - normal, select - stretch, edit, delete, ramp, audition).
utils::QObjectUniquePtr< dsp::PortConnectionsManagerport_connections_manager_
 Must be free'd after engine.
utils::QObjectUniquePtr< dsp::SnapGridsnap_grid_editor_
 Snap/Grid info for the editor.
utils::QObjectUniquePtr< dsp::SnapGridsnap_grid_timeline_
 Snap/Grid info for the timeline.
utils::QObjectUniquePtr< dsp::Metronomemetronome_
utils::QObjectUniquePtr< dsp::Transporttransport_
 Timeline metadata like BPM, time signature, etc.
utils::QObjectUniquePtr< engine::session::ControlRoomcontrol_room_
utils::QObjectUniquePtr< dsp::AudioEngineaudio_engine_
 The audio backend.
std::unique_ptr< dsp::AudioPoolpool_
 Audio file pool.
std::unique_ptr< QuantizeOptions > quantize_opts_editor_
 Manager for region link groups.
std::unique_ptr< QuantizeOptions > quantize_opts_timeline_
 Quantize info for the timeline.
utils::QObjectUniquePtr< structure::arrangement::Timelinetimeline_
 Timeline widget backend.
utils::QObjectUniquePtr< ClipEditorclip_editor_
 Backend for the widget.
std::unique_ptr< engine::session::MidiMappingsmidi_mappings_
 MIDI bindings.
utils::QObjectUniquePtr< structure::tracks::Tracklisttracklist_
 Tracklist.
boost::unordered_flat_map< structure::tracks::TrackUuid, structure::tracks::TrackPtrVariant > tracks_rt_
 Realtime cache of tracks.
utils::QObjectUniquePtr< structure::scenes::ClipLauncherclip_launcher_
utils::QObjectUniquePtr< structure::scenes::ClipPlaybackServiceclip_playback_service_
utils::QObjectUniquePtr< undo::UndoStackundo_stack_
std::unique_ptr< structure::arrangement::ArrangerObjectFactoryarranger_object_factory_
utils::QObjectUniquePtr< plugins::PluginFactoryplugin_factory_
std::unique_ptr< structure::tracks::TrackFactorytrack_factory_
utils::QObjectUniquePtr< actions::ArrangerObjectCreatorarranger_object_creator_
utils::QObjectUniquePtr< actions::TrackCreatortrack_creator_
utils::QObjectUniquePtr< actions::PluginImporterplugin_importer_
utils::QObjectUniquePtr< actions::FileImporterfile_importer_
utils::QObjectUniquePtr< gui::backend::TrackSelectionManagertrack_selection_manager_
utils::QObjectUniquePtr< gui::backend::PluginSelectionManagerplugin_selection_manager_
utils::QObjectUniquePtr< structure::arrangement::TempoObjectManagertempo_object_manager_
dsp::DspGraphDispatcher graph_dispatcher_
 Graph dispatcher.
int format_major_ = 0
 Used when deserializing projects.
int format_minor_ = 0

Static Public Attributes

static constexpr auto PROJECT_FILE = "project.zpj"sv
static constexpr auto PROJECT_BACKUPS_DIR = "backups"sv
static constexpr auto PROJECT_PLUGINS_DIR = "plugins"sv
static constexpr auto PROJECT_PLUGIN_STATES_DIR = "states"sv
static constexpr auto PROJECT_PLUGIN_EXT_COPIES_DIR = "ext_file_copies"sv
static constexpr auto PROJECT_PLUGIN_EXT_LINKS_DIR = "ext_file_links"sv
static constexpr auto PROJECT_EXPORTS_DIR = "exports"sv
static constexpr auto PROJECT_STEMS_DIR = "stems"sv
static constexpr auto PROJECT_POOL_DIR = "pool"sv
static constexpr auto PROJECT_FINISHED_FILE = "FINISHED"sv

Properties

QML_ELEMENT QString title
QString directory
zrythm::structure::tracks::Tracklisttracklist
zrythm::structure::scenes::ClipLauncherclipLauncher
zrythm::structure::scenes::ClipPlaybackServiceclipPlaybackService
zrythm::gui::backend::TrackSelectionManagertrackSelectionManager
zrythm::structure::arrangement::Timelinetimeline
zrythm::engine::session::ControlRoomcontrolRoom
zrythm::dsp::AudioEngineengine
zrythm::dsp::Metronomemetronome
zrythm::dsp::Transporttransport
zrythm::gui::backend::Tooltool
ClipEditorclipEditor
zrythm::undo::UndoStackundoStack
zrythm::actions::ArrangerObjectCreatorarrangerObjectCreator
zrythm::actions::TrackCreatortrackCreator
zrythm::actions::PluginImporterpluginImporter
zrythm::actions::FileImporterfileImporter
zrythm::dsp::TempoMapWrappertempoMap
zrythm::structure::arrangement::TempoObjectManagertempoObjectManager
zrythm::dsp::SnapGridsnapGridTimeline
zrythm::dsp::SnapGridsnapGridEditor

Friends

void init_from (Project &obj, const Project &other, utils::ObjectCloneType clone_type)
void to_json (nlohmann::json &j, const Project &project)
void from_json (const nlohmann::json &j, Project &project)

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.

A project (or song), contains all the project data as opposed to zrythm_app.h which manages global things like plugin descriptors and global settings.

Definition at line 98 of file project.h.

Member Typedef Documentation

◆ PluginPtrVariant

using Project::PluginPtrVariant = plugins::PluginPtrVariant

Definition at line 129 of file project.h.

◆ PluginRegistry

using Project::PluginRegistry = plugins::PluginRegistry

Definition at line 130 of file project.h.

◆ QuantizeOptions

using Project::QuantizeOptions = zrythm::gui::old_dsp::QuantizeOptions

Definition at line 127 of file project.h.

◆ TrackUuid

using Project::TrackUuid = structure::tracks::TrackUuid

Definition at line 128 of file project.h.

Member Enumeration Documentation

◆ CompressionFlag

enum class Project::CompressionFlag
strong

Flag to pass to project_compress() and project_decompress().

Definition at line 181 of file project.h.

◆ SelectionType

enum class Project::SelectionType
strong

Selection type, used for controlling which part of the interface is selected, for copy-paste, displaying info in the inspector, etc.

Enumerator
Tracklist 

Track selection in tracklist or mixer.

Timeline 

Timeline or pinned timeline.

Insert 

Insert selections in the mixer.

MidiFX 

MIDI FX selections in the mixer.

Instrument 

Instrument slot.

Modulator 

Modulator slot.

Editor 

Editor arranger.

Definition at line 154 of file project.h.

Member Function Documentation

◆ add_default_tracks()

void Project::add_default_tracks ( )

Adds the default undeletable tracks to the project.

To be called when creating new projects.

◆ autosave_cb()

int Project::autosave_cb ( void * data)
static

Autosave callback.

This will keep getting called at regular short intervals, and if enough time has passed and it's okay to save it will autosave, otherwise it will wait until the next interval and check again.

◆ clone()

Q_INVOKABLE Project * Project::clone ( bool for_backup) const

Deep-clones the given project.

To be used during save on the main thread.

Parameters
for_backupWhether the resulting project is for a backup.
Exceptions
ZrythmExceptionIf an error occurs.

◆ compress()

void Project::compress ( char ** _dest,
size_t * _dest_size,
CompressionFlag dest_type,
const QByteArray & src )
inlinestatic

Definition at line 294 of file project.h.

◆ compress_or_decompress()

void Project::compress_or_decompress ( bool compress,
char ** _dest,
size_t * _dest_size,
CompressionFlag dest_type,
const QByteArray & src )
static

Compresses/decompress a project from a file/data to a file/data.

Parameters
compressTrue to compress, false to decompress.
[out]_destPointer to a location to allocate memory.
[out]_dest_sizePointer to a location to store the size of the allocated memory.
srcInput bytes to compress/decompress.
Exceptions
ZrythmExceptionIf the compression/decompression fails.

◆ decompress()

void Project::decompress ( char ** _dest,
size_t * _dest_size,
CompressionFlag dest_type,
const QByteArray & src )
inlinestatic

Definition at line 303 of file project.h.

◆ find_arranger_object_by_id()

std::optional< zrythm::structure::arrangement::ArrangerObjectPtrVariant > Project::find_arranger_object_by_id ( structure::arrangement::ArrangerObject::Uuid id) const
inline

Definition at line 415 of file project.h.

◆ find_param_by_id()

dsp::ProcessorParameter * Project::find_param_by_id ( const dsp::ProcessorParameter::Uuid & id) const
inline

Definition at line 392 of file project.h.

◆ find_plugin_by_id()

std::optional< plugins::PluginPtrVariant > Project::find_plugin_by_id ( plugins::Plugin::Uuid id) const
inline

Definition at line 403 of file project.h.

◆ find_port_by_id()

std::optional< dsp::PortPtrVariant > Project::find_port_by_id ( const dsp::Port::Uuid & id) const
inline

Finds the Port corresponding to the identifier.

Parameters
idThe PortIdentifier to use for searching.
Note
Ported from Port::find_from_identifier() in older code.

Definition at line 386 of file project.h.

◆ find_track_by_id()

std::optional< zrythm::structure::tracks::TrackPtrVariant > Project::find_track_by_id ( structure::tracks::Track::Uuid id) const
inline

Definition at line 409 of file project.h.

◆ get_arranger_object_registry()

auto & Project::get_arranger_object_registry ( ) const
inline

Definition at line 373 of file project.h.

◆ get_existing_uncompressed_text()

std::string Project::get_existing_uncompressed_text ( bool backup)

Returns the uncompressed text representation of the saved project file.

Parameters
backupWhether to use the project file from the most recent backup.
Exceptions
ZrythmExceptionIf an error occurs.

◆ get_file_audio_source_registry()

auto & Project::get_file_audio_source_registry ( ) const
inline

Definition at line 365 of file project.h.

◆ get_newer_backup()

std::optional< fs::path > Project::get_newer_backup ( )

Returns the filepath of a backup (directory), if any, if it has a newer timestamp than main project file.

Returns nullopt if there were errors or no backup was found.

◆ get_param_registry()

auto & Project::get_param_registry ( ) const
inline

Definition at line 372 of file project.h.

◆ get_path()

fs::path Project::get_path ( ProjectPath path,
bool backup ) const

Returns the requested project path as a newly allocated string.

Parameters
backupWhether to get the path for the current backup instead of the main project.

◆ get_plugin_registry()

auto & Project::get_plugin_registry ( ) const
inline

Definition at line 370 of file project.h.

◆ get_port_registry()

auto & Project::get_port_registry ( ) const
inline

Definition at line 371 of file project.h.

◆ get_tempo_map()

const auto & Project::get_tempo_map ( ) const
inline

Definition at line 421 of file project.h.

◆ get_track_registry()

auto & Project::get_track_registry ( ) const
inline

Definition at line 369 of file project.h.

◆ getArrangerObjectFactory()

auto * Project::getArrangerObjectFactory ( ) const
inline

Definition at line 240 of file project.h.

◆ make_project_dirs()

void Project::make_project_dirs ( bool is_backup)

Creates the project directories.

Parameters
is_backup
Exceptions
ZrythmExceptionIf the directories cannot be created.

◆ save()

void Project::save ( const fs::path & _dir,
bool is_backup,
bool show_notification,
bool async )

Saves the project to a project file in the given dir.

Parameters
is_backup1 if this is a backup. Backups will be saved as <original filename>.bak<num>.
show_notificationShow a notification in the UI that the project was saved.
asyncSave asynchronously in another thread.
Exceptions
ZrythmExceptionIf the project cannot be saved.

Field Documentation

◆ arranger_object_creator_

utils::QObjectUniquePtr<actions::ArrangerObjectCreator> Project::arranger_object_creator_

Definition at line 670 of file project.h.

◆ arranger_object_factory_

std::unique_ptr<structure::arrangement::ArrangerObjectFactory> Project::arranger_object_factory_

Definition at line 665 of file project.h.

◆ audio_engine_

utils::QObjectUniquePtr<dsp::AudioEngine> Project::audio_engine_

The audio backend.

Definition at line 620 of file project.h.

◆ backup_dir_

std::optional<fs::path> Project::backup_dir_

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

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

Definition at line 553 of file project.h.

◆ clip_editor_

utils::QObjectUniquePtr<ClipEditor> Project::clip_editor_

Backend for the widget.

Definition at line 638 of file project.h.

◆ clip_launcher_

utils::QObjectUniquePtr<structure::scenes::ClipLauncher> Project::clip_launcher_

Definition at line 658 of file project.h.

◆ clip_playback_service_

utils::QObjectUniquePtr<structure::scenes::ClipPlaybackService> Project::clip_playback_service_

Definition at line 660 of file project.h.

◆ control_room_

utils::QObjectUniquePtr<engine::session::ControlRoom> Project::control_room_

Definition at line 615 of file project.h.

◆ datetime_str_

utils::Utf8String Project::datetime_str_

Datetime string to add to the project file.

Definition at line 543 of file project.h.

◆ device_manager_

std::shared_ptr<juce::AudioDeviceManager> Project::device_manager_

Definition at line 587 of file project.h.

◆ dir_

fs::path Project::dir_

Path to save the project in.

Definition at line 546 of file project.h.

◆ file_importer_

utils::QObjectUniquePtr<actions::FileImporter> Project::file_importer_

Definition at line 673 of file project.h.

◆ format_major_

int Project::format_major_ = 0

Used when deserializing projects.

Definition at line 692 of file project.h.

◆ format_minor_

int Project::format_minor_ = 0

Definition at line 693 of file project.h.

◆ graph_dispatcher_

dsp::DspGraphDispatcher Project::graph_dispatcher_

Graph dispatcher.

Note
Needs to be deleted after the audio engine so placed here torwards the end.

Definition at line 689 of file project.h.

◆ last_selection_

Project::SelectionType Project::last_selection_ {}

The last thing selected in the GUI.

Used in inspector_widget_refresh.

Definition at line 577 of file project.h.

◆ last_successful_autosave_time_

SteadyTimePoint Project::last_successful_autosave_time_

Last successful autosave timestamp.

Definition at line 561 of file project.h.

◆ loading_from_backup_

bool Project::loading_from_backup_ = false

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 585 of file project.h.

◆ metronome_

utils::QObjectUniquePtr<dsp::Metronome> Project::metronome_

Definition at line 608 of file project.h.

◆ midi_mappings_

std::unique_ptr<engine::session::MidiMappings> Project::midi_mappings_

MIDI bindings.

Definition at line 641 of file project.h.

◆ plugin_factory_

utils::QObjectUniquePtr<plugins::PluginFactory> Project::plugin_factory_

Definition at line 666 of file project.h.

◆ plugin_importer_

utils::QObjectUniquePtr<actions::PluginImporter> Project::plugin_importer_

Definition at line 672 of file project.h.

◆ plugin_selection_manager_

utils::QObjectUniquePtr<gui::backend::PluginSelectionManager> Project::plugin_selection_manager_

Definition at line 678 of file project.h.

◆ pool_

std::unique_ptr<dsp::AudioPool> Project::pool_

Audio file pool.

Definition at line 623 of file project.h.

◆ port_connections_manager_

utils::QObjectUniquePtr<dsp::PortConnectionsManager> Project::port_connections_manager_

Must be free'd after engine.

Definition at line 600 of file project.h.

◆ PROJECT_BACKUPS_DIR

auto Project::PROJECT_BACKUPS_DIR = "backups"sv
staticconstexpr

Definition at line 133 of file project.h.

◆ PROJECT_EXPORTS_DIR

auto Project::PROJECT_EXPORTS_DIR = "exports"sv
staticconstexpr

Definition at line 138 of file project.h.

◆ PROJECT_FILE

auto Project::PROJECT_FILE = "project.zpj"sv
staticconstexpr

Definition at line 132 of file project.h.

◆ PROJECT_FINISHED_FILE

auto Project::PROJECT_FINISHED_FILE = "FINISHED"sv
staticconstexpr

Definition at line 141 of file project.h.

◆ PROJECT_PLUGIN_EXT_COPIES_DIR

auto Project::PROJECT_PLUGIN_EXT_COPIES_DIR = "ext_file_copies"sv
staticconstexpr

Definition at line 136 of file project.h.

◆ PROJECT_PLUGIN_EXT_LINKS_DIR

auto Project::PROJECT_PLUGIN_EXT_LINKS_DIR = "ext_file_links"sv
staticconstexpr

Definition at line 137 of file project.h.

◆ PROJECT_PLUGIN_STATES_DIR

auto Project::PROJECT_PLUGIN_STATES_DIR = "states"sv
staticconstexpr

Definition at line 135 of file project.h.

◆ PROJECT_PLUGINS_DIR

auto Project::PROJECT_PLUGINS_DIR = "plugins"sv
staticconstexpr

Definition at line 134 of file project.h.

◆ PROJECT_POOL_DIR

auto Project::PROJECT_POOL_DIR = "pool"sv
staticconstexpr

Definition at line 140 of file project.h.

◆ PROJECT_STEMS_DIR

auto Project::PROJECT_STEMS_DIR = "stems"sv
staticconstexpr

Definition at line 139 of file project.h.

◆ quantize_opts_editor_

std::unique_ptr<QuantizeOptions> Project::quantize_opts_editor_

Manager for region link groups.

Quantize info for the piano roll.

Definition at line 629 of file project.h.

◆ quantize_opts_timeline_

std::unique_ptr<QuantizeOptions> Project::quantize_opts_timeline_

Quantize info for the timeline.

Definition at line 632 of file project.h.

◆ save_sem_

std::binary_semaphore Project::save_sem_ { 1 }

Used to check if the project has unsaved changes.

Semaphore used to block saving.

Definition at line 567 of file project.h.

◆ snap_grid_editor_

utils::QObjectUniquePtr<dsp::SnapGrid> Project::snap_grid_editor_

Snap/Grid info for the editor.

Definition at line 603 of file project.h.

◆ snap_grid_timeline_

utils::QObjectUniquePtr<dsp::SnapGrid> Project::snap_grid_timeline_

Snap/Grid info for the timeline.

Definition at line 606 of file project.h.

◆ tempo_object_manager_

utils::QObjectUniquePtr<structure::arrangement::TempoObjectManager> Project::tempo_object_manager_

Definition at line 681 of file project.h.

◆ timeline_

utils::QObjectUniquePtr<structure::arrangement::Timeline> Project::timeline_

Timeline widget backend.

Definition at line 635 of file project.h.

◆ title_

utils::Utf8String Project::title_

Project title.

Definition at line 540 of file project.h.

◆ tool_

gui::backend::Tool* Project::tool_ {}

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

Definition at line 593 of file project.h.

◆ track_creator_

utils::QObjectUniquePtr<actions::TrackCreator> Project::track_creator_

Definition at line 671 of file project.h.

◆ track_factory_

std::unique_ptr<structure::tracks::TrackFactory> Project::track_factory_

Definition at line 667 of file project.h.

◆ track_selection_manager_

utils::QObjectUniquePtr<gui::backend::TrackSelectionManager> Project::track_selection_manager_

Definition at line 676 of file project.h.

◆ tracklist_

utils::QObjectUniquePtr<structure::tracks::Tracklist> Project::tracklist_

Tracklist.

Must be free'd before engine and port connection manager.

Definition at line 648 of file project.h.

◆ tracks_rt_

boost::unordered_flat_map< structure::tracks::TrackUuid, structure::tracks::TrackPtrVariant> Project::tracks_rt_

Realtime cache of tracks.

Definition at line 656 of file project.h.

◆ transport_

utils::QObjectUniquePtr<dsp::Transport> Project::transport_

Timeline metadata like BPM, time signature, etc.

Definition at line 613 of file project.h.

◆ undo_stack_

utils::QObjectUniquePtr<undo::UndoStack> Project::undo_stack_

Definition at line 662 of file project.h.

◆ version_

utils::Utf8String Project::version_

Zrythm version, for serialization.

Definition at line 570 of file project.h.

Property Documentation

◆ arrangerObjectCreator

zrythm::actions::ArrangerObjectCreator * Project::arrangerObjectCreator
read

Definition at line 116 of file project.h.

◆ clipEditor

ClipEditor * Project::clipEditor
read

Definition at line 114 of file project.h.

◆ clipLauncher

zrythm::structure::scenes::ClipLauncher * Project::clipLauncher
read

Definition at line 105 of file project.h.

◆ clipPlaybackService

zrythm::structure::scenes::ClipPlaybackService * Project::clipPlaybackService
read

Definition at line 106 of file project.h.

◆ controlRoom

zrythm::engine::session::ControlRoom * Project::controlRoom
read

Definition at line 109 of file project.h.

◆ directory

QString Project::directory
readwrite

Definition at line 103 of file project.h.

◆ engine

zrythm::dsp::AudioEngine * Project::engine
read

Definition at line 110 of file project.h.

◆ fileImporter

zrythm::actions::FileImporter * Project::fileImporter
read

Definition at line 119 of file project.h.

◆ metronome

zrythm::dsp::Metronome * Project::metronome
read

Definition at line 111 of file project.h.

◆ pluginImporter

zrythm::actions::PluginImporter * Project::pluginImporter
read

Definition at line 118 of file project.h.

◆ snapGridEditor

zrythm::dsp::SnapGrid * Project::snapGridEditor
read

Definition at line 123 of file project.h.

◆ snapGridTimeline

zrythm::dsp::SnapGrid * Project::snapGridTimeline
read

Definition at line 122 of file project.h.

◆ tempoMap

zrythm::dsp::TempoMapWrapper * Project::tempoMap
read

Definition at line 120 of file project.h.

◆ tempoObjectManager

zrythm::structure::arrangement::TempoObjectManager * Project::tempoObjectManager
read

Definition at line 121 of file project.h.

◆ timeline

zrythm::structure::arrangement::Timeline * Project::timeline
read

Definition at line 108 of file project.h.

◆ title

QML_ELEMENT QString Project::title
readwrite

Definition at line 102 of file project.h.

◆ tool

zrythm::gui::backend::Tool * Project::tool
read

Definition at line 113 of file project.h.

◆ trackCreator

zrythm::actions::TrackCreator * Project::trackCreator
read

Definition at line 117 of file project.h.

◆ tracklist

zrythm::structure::tracks::Tracklist * Project::tracklist
read

Definition at line 104 of file project.h.

◆ trackSelectionManager

zrythm::gui::backend::TrackSelectionManager * Project::trackSelectionManager
read

Definition at line 107 of file project.h.

◆ transport

zrythm::dsp::Transport * Project::transport
read

Definition at line 112 of file project.h.

◆ undoStack

zrythm::undo::UndoStack * Project::undoStack
read

Definition at line 115 of file project.h.


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