TracktionEngine
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | List of all members
engine::ProjectBase Class Referenceabstract

Abstract base class for project backends. More...

#include <tracktion_ProjectBase.h>

Inheritance diagram for engine::ProjectBase:

Public Types

enum class  ReloadMode { lazy , immediate }
 Controls when a reload() actually re-reads the backing store. More...
 

Public Member Functions

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

Public Attributes

Projectowner
 
bool temporary = false
 

Detailed Description

Abstract base class for project backends.

Both FileBasedProject and FolderBasedProject inherit from this. Project delegates to this class via the pimpl pattern.

Member Enumeration Documentation

◆ ReloadMode

Controls when a reload() actually re-reads the backing store.

Enumerator
lazy 

Invalidate any cache; rescan on the next access.

immediate 

Invalidate any cache and rescan straight away.

Constructor & Destructor Documentation

◆ ProjectBase()

engine::ProjectBase::ProjectBase ( Project o)

◆ ~ProjectBase()

virtual engine::ProjectBase::~ProjectBase ( )
virtualdefault

Member Function Documentation

◆ save()

virtual bool engine::ProjectBase::save ( )
pure virtual

◆ isValid()

virtual bool engine::ProjectBase::isValid ( ) const
pure virtual

◆ isReadOnly()

virtual bool engine::ProjectBase::isReadOnly ( ) const
pure virtual

◆ isTemporary()

virtual bool engine::ProjectBase::isTemporary ( ) const
virtual

◆ getProjectID()

virtual ProjectID engine::ProjectBase::getProjectID ( ) const
pure virtual

◆ getName()

virtual juce::String engine::ProjectBase::getName ( ) const
pure virtual

◆ getProjectFile()

virtual const juce::File & engine::ProjectBase::getProjectFile ( ) const
pure virtualnoexcept

◆ getDefaultDirectory()

virtual juce::File engine::ProjectBase::getDefaultDirectory ( ) const
pure virtual

◆ getDirectoryForMedia()

virtual juce::File engine::ProjectBase::getDirectoryForMedia ( ProjectItem::Category  ) const
pure virtual

◆ setName()

virtual void engine::ProjectBase::setName ( const juce::String &  )
pure virtual

◆ createNewProjectId()

virtual void engine::ProjectBase::createNewProjectId ( )
pure virtual

◆ setNewProjectId()

virtual void engine::ProjectBase::setNewProjectId ( ProjectID  )
pure virtual

◆ getProjectProperty()

virtual juce::String engine::ProjectBase::getProjectProperty ( const juce::String &  ) const
pure virtual

◆ setProjectProperty()

virtual void engine::ProjectBase::setProjectProperty ( const juce::String &  ,
const juce::String &   
)
pure virtual

◆ refreshProjectPropertiesFromFile()

virtual void engine::ProjectBase::refreshProjectPropertiesFromFile ( )
pure virtual

◆ isLibraryProject()

virtual bool engine::ProjectBase::isLibraryProject ( ) const
pure virtual

◆ getNumProjectItems()

virtual int engine::ProjectBase::getNumProjectItems ( )
pure virtual

◆ getProjectItemRef()

virtual ProjectItemRef engine::ProjectBase::getProjectItemRef ( int  index)
pure virtual

◆ getAllProjectItemRefs()

virtual juce::Array< ProjectItemRef > engine::ProjectBase::getAllProjectItemRefs ( ) const
pure virtual

◆ getProjectItemAt()

virtual ProjectItem::Ptr engine::ProjectBase::getProjectItemAt ( int  index)
pure virtual

◆ getAllProjectItems()

virtual juce::Array< ProjectItem::Ptr > engine::ProjectBase::getAllProjectItems ( )
pure virtual

◆ getIndexOf()

virtual int engine::ProjectBase::getIndexOf ( const ProjectItemRef ) const
pure virtual

◆ getProjectItemFor()

virtual ProjectItem::Ptr engine::ProjectBase::getProjectItemFor ( const ProjectItemRef )
pure virtual

◆ getProjectItemForFile()

virtual ProjectItem::Ptr engine::ProjectBase::getProjectItemForFile ( const juce::File &  )
pure virtual

◆ createNewItem()

virtual ProjectItem::Ptr engine::ProjectBase::createNewItem ( const juce::File &  ,
const juce::String &  type,
const juce::String &  name,
const juce::String &  description,
ProjectItem::Category  ,
bool  atTopOfList 
)
pure virtual

◆ removeProjectItem()

virtual bool engine::ProjectBase::removeProjectItem ( const ProjectItemRef ,
bool  deleteSourceMaterial 
)
pure virtual

◆ moveProjectItem()

virtual void engine::ProjectBase::moveProjectItem ( int  from,
int  to 
)
pure virtual

◆ createNewEdit()

virtual ProjectItem::Ptr engine::ProjectBase::createNewEdit ( )
pure virtual

◆ redirectIDsFromProject()

virtual void engine::ProjectBase::redirectIDsFromProject ( ProjectID  oldProjId,
ProjectID  newProjId 
)
pure virtual

◆ mergeArchiveContents()

virtual void engine::ProjectBase::mergeArchiveContents ( const juce::File &  )
pure virtual

◆ mergeOtherProjectIntoThis()

virtual void engine::ProjectBase::mergeOtherProjectIntoThis ( const juce::File &  )
pure virtual

◆ refreshFolderStructure()

virtual void engine::ProjectBase::refreshFolderStructure ( )
pure virtual

◆ createDefaultFolders()

virtual void engine::ProjectBase::createDefaultFolders ( )
pure virtual

◆ getSelectableDescription()

virtual juce::String engine::ProjectBase::getSelectableDescription ( ) const
pure virtual

◆ load()

virtual void engine::ProjectBase::load ( )
virtual

Reimplemented in engine::FileBasedProject.

◆ changed()

virtual void engine::ProjectBase::changed ( )
pure virtual

◆ lockFile()

virtual void engine::ProjectBase::lockFile ( )
virtual

Reimplemented in engine::FileBasedProject.

◆ unlockFile()

virtual void engine::ProjectBase::unlockFile ( )
virtual

Reimplemented in engine::FileBasedProject.

◆ reload()

virtual void engine::ProjectBase::reload ( ReloadMode  = ReloadMode::lazy)
virtual

Invalidates any cached item list so the next access rescans the backing store.

Default is a no-op; folder-based projects override this to clear their cache.

Reimplemented in engine::FolderBasedProject.

◆ sourceFileMoved()

virtual void engine::ProjectBase::sourceFileMoved ( const juce::File &  oldFile,
const juce::File &  newFile 
)
pure virtual

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

Implemented in engine::FileBasedProject, and engine::FolderBasedProject.

Member Data Documentation

◆ owner

Project& engine::ProjectBase::owner

◆ temporary

bool engine::ProjectBase::temporary = false

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