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

Core functionality of a Zrythm project. More...

#include <src/structure/project/project.h>

Inheritance diagram for zrythm::structure::project::Project:
Collaboration diagram for zrythm::structure::project::Project:

Public Types

using TrackUuid = structure::tracks::TrackUuid
using PluginPtrVariant = plugins::PluginPtrVariant
using PluginRegistry = plugins::PluginRegistry
using ProjectDirectoryPathProvider = std::function<fs::path (bool for_backup)>

Public Member Functions

 Project (utils::AppSettings &app_settings, ProjectDirectoryPathProvider project_directory_path_provider, dsp::IHardwareAudioInterface &hw_interface, std::shared_ptr< juce::AudioPluginFormatManager > plugin_format_manager, plugins::PluginHostWindowFactory plugin_host_window_provider, dsp::Metronome &metronome, dsp::Fader &monitor_fader, QObject *parent=nullptr)
structure::tracks::Tracklisttracklist () const
structure::scenes::ClipLauncherclipLauncher () const
structure::scenes::ClipPlaybackServiceclipPlaybackService () const
dsp::TransportgetTransport () const
dsp::AudioEngineengine () const
dsp::TempoMapWrappergetTempoMap () const
dsp::SnapGridsnapGridTimeline () const
dsp::SnapGridsnapGridEditor () const
structure::arrangement::TempoObjectManagertempoObjectManager () const
Q_SIGNAL void aboutToBeDeleted ()
dsp::Fadermonitor_fader () const
dsp::Metronomemetronome () const
auto * arrangerObjectFactory () const
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 & tempo_map () const

Data Fields

utils::QObjectUniquePtr< dsp::PortConnectionsManagerport_connections_manager_
 Must be free'd after engine.
utils::QObjectUniquePtr< dsp::Transporttransport_
 Timeline metadata like BPM, time signature, etc.
utils::QObjectUniquePtr< dsp::AudioEngineaudio_engine_
 The audio backend.
std::unique_ptr< dsp::AudioPoolpool_
 Audio file pool.
utils::QObjectUniquePtr< structure::tracks::Tracklisttracklist_
 Manager for region link groups.
boost::unordered_flat_map< structure::tracks::TrackUuid, structure::tracks::TrackPtrVariant > tracks_rt_
 Realtime cache of tracks.
utils::QObjectUniquePtr< plugins::PluginFactoryplugin_factory_
std::unique_ptr< structure::tracks::TrackFactorytrack_factory_

Properties

QML_ELEMENT zrythm::structure::tracks::Tracklisttracklist
zrythm::structure::scenes::ClipLauncherclipLauncher
zrythm::structure::scenes::ClipPlaybackServiceclipPlaybackService
zrythm::dsp::AudioEngineengine
zrythm::dsp::Transporttransport
zrythm::dsp::TempoMapWrappertempoMap
zrythm::structure::arrangement::TempoObjectManagertempoObjectManager
zrythm::dsp::SnapGridsnapGridTimeline
zrythm::dsp::SnapGridsnapGridEditor

Friends

struct PluginBuilderForDeserialization
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

Core functionality of a Zrythm project.

Definition at line 50 of file project.h.

Member Typedef Documentation

◆ PluginPtrVariant

using zrythm::structure::project::Project::PluginPtrVariant = plugins::PluginPtrVariant

Definition at line 69 of file project.h.

◆ PluginRegistry

using zrythm::structure::project::Project::PluginRegistry = plugins::PluginRegistry

Definition at line 70 of file project.h.

◆ ProjectDirectoryPathProvider

using zrythm::structure::project::Project::ProjectDirectoryPathProvider = std::function<fs::path (bool for_backup)>

Definition at line 71 of file project.h.

◆ TrackUuid

using zrythm::structure::project::Project::TrackUuid = structure::tracks::TrackUuid

Definition at line 68 of file project.h.

Member Function Documentation

◆ add_default_tracks()

void zrythm::structure::project::Project::add_default_tracks ( )

Adds the default undeletable tracks to the project.

To be called when creating new projects.

◆ arrangerObjectFactory()

auto * zrythm::structure::project::Project::arrangerObjectFactory ( ) const
inline

Definition at line 109 of file project.h.

◆ find_arranger_object_by_id()

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

Definition at line 179 of file project.h.

◆ find_param_by_id()

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

Definition at line 156 of file project.h.

◆ find_plugin_by_id()

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

Definition at line 167 of file project.h.

◆ find_port_by_id()

std::optional< dsp::PortPtrVariant > zrythm::structure::project::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 150 of file project.h.

◆ find_track_by_id()

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

Definition at line 173 of file project.h.

◆ get_arranger_object_registry()

auto & zrythm::structure::project::Project::get_arranger_object_registry ( ) const
inline

Definition at line 137 of file project.h.

◆ get_file_audio_source_registry()

auto & zrythm::structure::project::Project::get_file_audio_source_registry ( ) const
inline

Definition at line 129 of file project.h.

◆ get_param_registry()

auto & zrythm::structure::project::Project::get_param_registry ( ) const
inline

Definition at line 136 of file project.h.

◆ get_plugin_registry()

auto & zrythm::structure::project::Project::get_plugin_registry ( ) const
inline

Definition at line 134 of file project.h.

◆ get_port_registry()

auto & zrythm::structure::project::Project::get_port_registry ( ) const
inline

Definition at line 135 of file project.h.

◆ get_track_registry()

auto & zrythm::structure::project::Project::get_track_registry ( ) const
inline

Definition at line 133 of file project.h.

◆ tempo_map()

const auto & zrythm::structure::project::Project::tempo_map ( ) const
inline

Definition at line 185 of file project.h.

◆ PluginBuilderForDeserialization

friend struct PluginBuilderForDeserialization
friend

Definition at line 65 of file project.h.

Field Documentation

◆ audio_engine_

utils::QObjectUniquePtr<dsp::AudioEngine> zrythm::structure::project::Project::audio_engine_

The audio backend.

Definition at line 253 of file project.h.

◆ plugin_factory_

utils::QObjectUniquePtr<plugins::PluginFactory> zrythm::structure::project::Project::plugin_factory_

Definition at line 285 of file project.h.

◆ pool_

std::unique_ptr<dsp::AudioPool> zrythm::structure::project::Project::pool_

Audio file pool.

Definition at line 256 of file project.h.

◆ port_connections_manager_

utils::QObjectUniquePtr<dsp::PortConnectionsManager> zrythm::structure::project::Project::port_connections_manager_

Must be free'd after engine.

Definition at line 235 of file project.h.

◆ track_factory_

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

Definition at line 286 of file project.h.

◆ tracklist_

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

Manager for region link groups.

Tracklist.

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

Definition at line 266 of file project.h.

◆ tracks_rt_

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

Realtime cache of tracks.

Definition at line 274 of file project.h.

◆ transport_

utils::QObjectUniquePtr<dsp::Transport> zrythm::structure::project::Project::transport_

Timeline metadata like BPM, time signature, etc.

Definition at line 248 of file project.h.

Property Documentation

◆ clipLauncher

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

Definition at line 55 of file project.h.

◆ clipPlaybackService

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

Definition at line 56 of file project.h.

◆ engine

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

Definition at line 57 of file project.h.

◆ snapGridEditor

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

Definition at line 62 of file project.h.

◆ snapGridTimeline

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

Definition at line 61 of file project.h.

◆ tempoMap

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

Definition at line 59 of file project.h.

◆ tempoObjectManager

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

Definition at line 60 of file project.h.

◆ tracklist

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

Definition at line 54 of file project.h.

◆ transport

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

Definition at line 58 of file project.h.


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