TracktionEngine
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
engine::FileBasedProject Class Reference

Contains the implementation logic for a file-based (.tracktion) project. More...

#include <tracktion_FileBasedProject.h>

Inheritance diagram for engine::FileBasedProject:

Public Member Functions

 FileBasedProject (Project &owner, const juce::File &projectFile)
 
 ~FileBasedProject () override=default
 
bool save () override
 
bool isValid () const override
 
bool isReadOnly () const override
 
ProjectID getProjectID () const override
 
juce::String getName () const override
 
const juce::File & getProjectFile () const noexcept override
 
juce::File getDefaultDirectory () const override
 
juce::File getDirectoryForMedia (ProjectItem::Category) const override
 
void setName (const juce::String &) override
 
void createNewProjectId () override
 
void setNewProjectId (ProjectID) override
 
juce::String getProjectProperty (const juce::String &) const override
 
void setProjectProperty (const juce::String &, const juce::String &) override
 
void refreshProjectPropertiesFromFile () override
 
bool isLibraryProject () const override
 
int getNumProjectItems () override
 
ProjectItemRef getProjectItemRef (int index) override
 
juce::Array< ProjectItemRefgetAllProjectItemRefs () const override
 
ProjectItem::Ptr getProjectItemAt (int index) override
 
juce::Array< ProjectItem::PtrgetAllProjectItems () override
 
int getIndexOf (const ProjectItemRef &) const override
 
ProjectItem::Ptr getProjectItemFor (const ProjectItemRef &) override
 
ProjectItem::Ptr getProjectItemForFile (const juce::File &) override
 
ProjectItem::Ptr createNewItem (const juce::File &, const juce::String &type, const juce::String &name, const juce::String &description, ProjectItem::Category, bool atTopOfList) override
 
bool removeProjectItem (const ProjectItemRef &, bool deleteSourceMaterial) override
 
void moveProjectItem (int from, int to) override
 
ProjectItem::Ptr createNewEdit () override
 
void redirectIDsFromProject (ProjectID oldProjId, ProjectID newProjId) override
 
void mergeArchiveContents (const juce::File &) override
 
void mergeOtherProjectIntoThis (const juce::File &) override
 
void refreshFolderStructure () override
 
void createDefaultFolders () override
 
juce::String getSelectableDescription () const override
 
void load () override
 
void changed () override
 
void lockFile () override
 
void unlockFile () override
 
void sourceFileMoved (const juce::File &, const juce::File &) override
 Updates all edit source references after a file has been moved/renamed.
 
- Public Member Functions inherited from engine::ProjectBase
 ProjectBase (Project &o)
 
virtual ~ProjectBase ()=default
 
virtual bool isTemporary () const
 
virtual void reload (ReloadMode=ReloadMode::lazy)
 Invalidates any cached item list so the next access rescans the backing store.
 

Static Public Member Functions

static ProjectID generateNewProjectId (ProjectManager &)
 

Additional Inherited Members

- Public Types inherited from engine::ProjectBase
enum class  ReloadMode { lazy , immediate }
 Controls when a reload() actually re-reads the backing store. More...
 
- Public Attributes inherited from engine::ProjectBase
Projectowner
 
bool temporary = false
 

Detailed Description

Contains the implementation logic for a file-based (.tracktion) project.

Project delegates to this class via the pimpl pattern.

Constructor & Destructor Documentation

◆ FileBasedProject()

engine::FileBasedProject::FileBasedProject ( Project owner,
const juce::File &  projectFile 
)

◆ ~FileBasedProject()

engine::FileBasedProject::~FileBasedProject ( )
overridedefault

Member Function Documentation

◆ save()

bool engine::FileBasedProject::save ( )
overridevirtual

Implements engine::ProjectBase.

◆ isValid()

bool engine::FileBasedProject::isValid ( ) const
overridevirtual

Implements engine::ProjectBase.

◆ isReadOnly()

bool engine::FileBasedProject::isReadOnly ( ) const
overridevirtual

Implements engine::ProjectBase.

◆ getProjectID()

ProjectID engine::FileBasedProject::getProjectID ( ) const
overridevirtual

Implements engine::ProjectBase.

◆ getName()

juce::String engine::FileBasedProject::getName ( ) const
overridevirtual

Implements engine::ProjectBase.

◆ getProjectFile()

const juce::File & engine::FileBasedProject::getProjectFile ( ) const
overridevirtualnoexcept

Implements engine::ProjectBase.

◆ getDefaultDirectory()

juce::File engine::FileBasedProject::getDefaultDirectory ( ) const
overridevirtual

Implements engine::ProjectBase.

◆ getDirectoryForMedia()

juce::File engine::FileBasedProject::getDirectoryForMedia ( ProjectItem::Category  ) const
overridevirtual

Implements engine::ProjectBase.

◆ setName()

void engine::FileBasedProject::setName ( const juce::String &  )
overridevirtual

Implements engine::ProjectBase.

◆ createNewProjectId()

void engine::FileBasedProject::createNewProjectId ( )
overridevirtual

Implements engine::ProjectBase.

◆ setNewProjectId()

void engine::FileBasedProject::setNewProjectId ( ProjectID  )
overridevirtual

Implements engine::ProjectBase.

◆ getProjectProperty()

juce::String engine::FileBasedProject::getProjectProperty ( const juce::String &  ) const
overridevirtual

Implements engine::ProjectBase.

◆ setProjectProperty()

void engine::FileBasedProject::setProjectProperty ( const juce::String &  ,
const juce::String &   
)
overridevirtual

Implements engine::ProjectBase.

◆ refreshProjectPropertiesFromFile()

void engine::FileBasedProject::refreshProjectPropertiesFromFile ( )
overridevirtual

Implements engine::ProjectBase.

◆ isLibraryProject()

bool engine::FileBasedProject::isLibraryProject ( ) const
overridevirtual

Implements engine::ProjectBase.

◆ getNumProjectItems()

int engine::FileBasedProject::getNumProjectItems ( )
overridevirtual

Implements engine::ProjectBase.

◆ getProjectItemRef()

ProjectItemRef engine::FileBasedProject::getProjectItemRef ( int  index)
overridevirtual

Implements engine::ProjectBase.

◆ getAllProjectItemRefs()

juce::Array< ProjectItemRef > engine::FileBasedProject::getAllProjectItemRefs ( ) const
overridevirtual

Implements engine::ProjectBase.

◆ getProjectItemAt()

ProjectItem::Ptr engine::FileBasedProject::getProjectItemAt ( int  index)
overridevirtual

Implements engine::ProjectBase.

◆ getAllProjectItems()

juce::Array< ProjectItem::Ptr > engine::FileBasedProject::getAllProjectItems ( )
overridevirtual

Implements engine::ProjectBase.

◆ getIndexOf()

int engine::FileBasedProject::getIndexOf ( const ProjectItemRef ) const
overridevirtual

Implements engine::ProjectBase.

◆ getProjectItemFor()

ProjectItem::Ptr engine::FileBasedProject::getProjectItemFor ( const ProjectItemRef )
overridevirtual

Implements engine::ProjectBase.

◆ getProjectItemForFile()

ProjectItem::Ptr engine::FileBasedProject::getProjectItemForFile ( const juce::File &  )
overridevirtual

Implements engine::ProjectBase.

◆ createNewItem()

ProjectItem::Ptr engine::FileBasedProject::createNewItem ( const juce::File &  ,
const juce::String &  type,
const juce::String &  name,
const juce::String &  description,
ProjectItem::Category  ,
bool  atTopOfList 
)
overridevirtual

Implements engine::ProjectBase.

◆ removeProjectItem()

bool engine::FileBasedProject::removeProjectItem ( const ProjectItemRef ,
bool  deleteSourceMaterial 
)
overridevirtual

Implements engine::ProjectBase.

◆ moveProjectItem()

void engine::FileBasedProject::moveProjectItem ( int  from,
int  to 
)
overridevirtual

Implements engine::ProjectBase.

◆ createNewEdit()

ProjectItem::Ptr engine::FileBasedProject::createNewEdit ( )
overridevirtual

Implements engine::ProjectBase.

◆ redirectIDsFromProject()

void engine::FileBasedProject::redirectIDsFromProject ( ProjectID  oldProjId,
ProjectID  newProjId 
)
overridevirtual

Implements engine::ProjectBase.

◆ mergeArchiveContents()

void engine::FileBasedProject::mergeArchiveContents ( const juce::File &  )
overridevirtual

Implements engine::ProjectBase.

◆ mergeOtherProjectIntoThis()

void engine::FileBasedProject::mergeOtherProjectIntoThis ( const juce::File &  )
overridevirtual

Implements engine::ProjectBase.

◆ refreshFolderStructure()

void engine::FileBasedProject::refreshFolderStructure ( )
overridevirtual

Implements engine::ProjectBase.

◆ createDefaultFolders()

void engine::FileBasedProject::createDefaultFolders ( )
overridevirtual

Implements engine::ProjectBase.

◆ getSelectableDescription()

juce::String engine::FileBasedProject::getSelectableDescription ( ) const
overridevirtual

Implements engine::ProjectBase.

◆ load()

void engine::FileBasedProject::load ( )
overridevirtual

Reimplemented from engine::ProjectBase.

◆ changed()

void engine::FileBasedProject::changed ( )
overridevirtual

Implements engine::ProjectBase.

◆ lockFile()

void engine::FileBasedProject::lockFile ( )
overridevirtual

Reimplemented from engine::ProjectBase.

◆ unlockFile()

void engine::FileBasedProject::unlockFile ( )
overridevirtual

Reimplemented from engine::ProjectBase.

◆ sourceFileMoved()

void engine::FileBasedProject::sourceFileMoved ( const juce::File &  oldFile,
const juce::File &  newFile 
)
overridevirtual

Updates all edit source references after a file has been moved/renamed.

Implements engine::ProjectBase.

◆ generateNewProjectId()

static ProjectID engine::FileBasedProject::generateNewProjectId ( ProjectManager )
static

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