|
Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
|
Core functionality of a Zrythm project. More...
#include <src/structure/project/project.h>


Public Types | |
| using | TrackUuid = structure::tracks::TrackUuid |
| using | PluginPtrVariant = plugins::PluginPtrVariant |
| using | PluginRegistry = plugins::PluginRegistry |
Public Member Functions | |
| Project (utils::AppSettings &app_settings, std::shared_ptr< juce::AudioDeviceManager > device_manager, std::shared_ptr< juce::AudioPluginFormatManager > plugin_format_manager, plugins::PluginHostWindowFactory plugin_host_window_provider, dsp::Fader &monitor_fader, utils::Utf8String zrythm_version, QObject *parent=nullptr) | |
| QString | getTitle () const |
| void | setTitle (const QString &title) |
| QString | directory () const |
| void | setDirectory (const QString &directory) |
| structure::tracks::Tracklist * | tracklist () const |
| structure::scenes::ClipLauncher * | clipLauncher () const |
| structure::scenes::ClipPlaybackService * | clipPlaybackService () const |
| dsp::Metronome * | metronome () const |
| dsp::Transport * | getTransport () const |
| dsp::AudioEngine * | engine () const |
| dsp::TempoMapWrapper * | getTempoMap () const |
| dsp::SnapGrid * | snapGridTimeline () const |
| dsp::SnapGrid * | snapGridEditor () const |
| structure::arrangement::TempoObjectManager * | tempoObjectManager () const |
| Q_SIGNAL void | titleChanged (const QString &title) |
| Q_SIGNAL void | directoryChanged (const QString &directory) |
| Q_SIGNAL void | aboutToBeDeleted () |
| dsp::Fader & | monitor_fader () |
| fs::path | get_directory (bool for_backup) const |
| auto * | arrangerObjectFactory () const |
| Q_INVOKABLE Project * | clone (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::ProcessorParameter * | find_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 |
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) |
| using zrythm::structure::project::Project::PluginPtrVariant = plugins::PluginPtrVariant |
| using zrythm::structure::project::Project::PluginRegistry = plugins::PluginRegistry |
| using zrythm::structure::project::Project::TrackUuid = structure::tracks::TrackUuid |
| void zrythm::structure::project::Project::add_default_tracks | ( | ) |
Adds the default undeletable tracks to the project.
To be called when creating new projects.
|
inline |
| Q_INVOKABLE Project * zrythm::structure::project::Project::clone | ( | bool | for_backup | ) | const |
Deep-clones the given project.
To be used during save on the main thread.
| for_backup | Whether the resulting project is for a backup. |
| ZrythmException | If an error occurs. |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
| std::optional< fs::path > zrythm::structure::project::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.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
| std::unique_ptr<structure::arrangement::ArrangerObjectFactory> zrythm::structure::project::Project::arranger_object_factory_ |
| utils::QObjectUniquePtr<dsp::AudioEngine> zrythm::structure::project::Project::audio_engine_ |
| std::optional<fs::path> zrythm::structure::project::Project::backup_dir_ |
| utils::QObjectUniquePtr<structure::scenes::ClipLauncher> zrythm::structure::project::Project::clip_launcher_ |
| utils::QObjectUniquePtr<structure::scenes::ClipPlaybackService> zrythm::structure::project::Project::clip_playback_service_ |
| utils::Utf8String zrythm::structure::project::Project::datetime_str_ |
| std::shared_ptr<juce::AudioDeviceManager> zrythm::structure::project::Project::device_manager_ |
| fs::path zrythm::structure::project::Project::dir_ |
| int zrythm::structure::project::Project::format_major_ = 0 |
| int zrythm::structure::project::Project::format_minor_ = 0 |
| dsp::DspGraphDispatcher zrythm::structure::project::Project::graph_dispatcher_ |
| bool zrythm::structure::project::Project::loading_from_backup_ = false |
| utils::QObjectUniquePtr<dsp::Metronome> zrythm::structure::project::Project::metronome_ |
| dsp::Fader& zrythm::structure::project::Project::monitor_fader_ |
| utils::QObjectUniquePtr<plugins::PluginFactory> zrythm::structure::project::Project::plugin_factory_ |
| std::shared_ptr<juce::AudioPluginFormatManager> zrythm::structure::project::Project::plugin_format_manager_ |
| std::unique_ptr<dsp::AudioPool> zrythm::structure::project::Project::pool_ |
| utils::QObjectUniquePtr<dsp::PortConnectionsManager> zrythm::structure::project::Project::port_connections_manager_ |
| utils::QObjectUniquePtr<dsp::SnapGrid> zrythm::structure::project::Project::snap_grid_editor_ |
| utils::QObjectUniquePtr<dsp::SnapGrid> zrythm::structure::project::Project::snap_grid_timeline_ |
| utils::QObjectUniquePtr<structure::arrangement::TempoObjectManager> zrythm::structure::project::Project::tempo_object_manager_ |
| utils::Utf8String zrythm::structure::project::Project::title_ |
| std::unique_ptr<structure::tracks::TrackFactory> zrythm::structure::project::Project::track_factory_ |
| utils::QObjectUniquePtr<structure::tracks::Tracklist> zrythm::structure::project::Project::tracklist_ |
| boost::unordered_flat_map< structure::tracks::TrackUuid, structure::tracks::TrackPtrVariant> zrythm::structure::project::Project::tracks_rt_ |
| utils::QObjectUniquePtr<dsp::Transport> zrythm::structure::project::Project::transport_ |
| utils::Utf8String zrythm::structure::project::Project::version_ |
|
read |
|
read |
|
readwrite |
|
read |
|
read |
|
read |
|
read |
|
read |
|
read |
|
readwrite |
|
read |
|
read |