|
TracktionEngine
|
A tracktion project. More...
#include <tracktion_Project.h>
Public Types | |
| enum | NagMode { nagAsk , nagAutoYes , nagAutoNo } |
| General enum for requests that have a project setting and so can return true without asking the user. More... | |
| enum | ProjectSortType { SortByName , SortByDesc , SortByType , SortByLength , SortBySize , SortByModified , SortByCreated } |
| using | Ptr = juce::ReferenceCountedObjectPtr< Project > |
Public Types inherited from tracktion::engine::Selectable | |
| using | WeakRef = juce::WeakReference< Selectable > |
Public Member Functions | |
| ~Project () override | |
| bool | save () |
| only saves if a change has been made since last time | |
| void | handleAsyncUpdate () override |
| bool | isValid () const |
| true if it's got a proper project ID. | |
| bool | isReadOnly () const |
| bool | isTemporary () const |
| int | getProjectID () const |
| juce::String | getName () const |
| juce::String | getDescription () const |
| const juce::File & | getProjectFile () const noexcept |
| juce::File | getDefaultDirectory () const |
| juce::File | getDirectoryForMedia (ProjectItem::Category category) const |
| void | setName (const juce::String &newName) |
| void | setDescription (const juce::String &newDesc) |
| void | createNewProjectId () |
| juce::String | getProjectProperty (const juce::String &name) const |
| void | setProjectProperty (const juce::String &name, const juce::String &value) |
| void | refreshProjectPropertiesFromFile () |
| bool | isLibraryProject () const |
| bool | askAboutTempoDetect (const juce::File &, bool &shouldSetAutoTempo) const |
| juce::Array< ProjectItemID > | findOrphanItems () |
| int | getNumProjectItems () |
| ProjectItemID | getProjectItemID (int index) |
| juce::Array< ProjectItemID > | getAllProjectItemIDs () const |
| juce::Array< int > | getAllItemIDs () const |
| ProjectItem::Ptr | getProjectItemAt (int index) |
| juce::Array< ProjectItem::Ptr > | getAllProjectItems () |
| int | getIndexOf (ProjectItemID) const |
| ProjectItem::Ptr | getProjectItemForID (ProjectItemID) |
| ProjectItem::Ptr | getProjectItemForFile (const juce::File &file) |
| ProjectItem::Ptr | createNewItem (const juce::File &fileToReference, const juce::String &type, const juce::String &name, const juce::String &description, const ProjectItem::Category cat, bool atTopOfList) |
| Returns an existing object if there is one. | |
| bool | removeProjectItem (ProjectItemID, bool deleteSourceMaterial) |
| void | moveProjectItem (int indexToMoveFrom, int indexToMoveTo) |
| ProjectItem::Ptr | createNewEdit () |
| void | redirectIDsFromProject (int oldProjId, int newProjId) |
| Tells all exportables in all edits to change this project ID. | |
| void | mergeArchiveContents (const juce::File &archiveFile) |
| void | mergeOtherProjectIntoThis (const juce::File &otherProject) |
| void | refreshFolderStructure () |
| makes sure all media is in the correct sub folder | |
| void | createDefaultFolders () |
| void | searchFor (juce::Array< ProjectItemID > &results, SearchOperation &) |
| this will load the keyword table, and do a search | |
| juce::String | getSelectableDescription () override |
| Subclasses must return a description of what they are. | |
| void | lockFile () |
| Stops anyone writing/moving the project file. | |
| void | unlockFile () |
Public Member Functions inherited from tracktion::engine::Selectable | |
| Selectable () | |
| virtual | ~Selectable () |
| virtual void | selectionStatusChanged (bool isNowSelected) |
| Can be overridden to tell this object that it has just been selected or deselected. | |
| virtual void | selectableAboutToBeDeleted () |
| Called just before the selectable is about to be deleted so any subclasses should still be valid at this point. | |
| void | addListener (SelectableListener *) |
| void | removeListener (SelectableListener *) |
| void | addSelectableListener (SelectableListener *) |
| void | removeSelectableListener (SelectableListener *) |
| void | cancelAnyPendingUpdates () |
| If changed() has been called, this will cancel any pending async change notificaions. | |
| void | deselect () |
| void | propertiesChanged () |
| void | notifyListenersOfDeletion () |
| WeakRef | getWeakRef () |
Public Attributes | |
| Engine & | engine |
| ProjectManager & | projectManager |
Public Attributes inherited from tracktion::engine::Selectable | |
| WeakRef::Master | masterReference |
Additional Inherited Members | |
Static Public Member Functions inherited from tracktion::engine::Selectable | |
| static void | initialise () |
| static bool | isSelectableValid (const Selectable *) noexcept |
| checks whether this object has been deleted. | |
A tracktion project.
The projects contain a set of ProjectItems to represent each item in it, which may be edits, wave files, etc.
Originally these were designed to hold huge numbers of items (so I could use them for holding sound-libraries and searching them), so some of the implementation might seem like overkill, such as the reverse-index text search stuff.
| using tracktion::engine::Project::Ptr = juce::ReferenceCountedObjectPtr<Project> |
|
override |
| bool tracktion::engine::Project::save | ( | ) |
only saves if a change has been made since last time
|
override |
| bool tracktion::engine::Project::isValid | ( | ) | const |
true if it's got a proper project ID.
| bool tracktion::engine::Project::isReadOnly | ( | ) | const |
| bool tracktion::engine::Project::isTemporary | ( | ) | const |
| int tracktion::engine::Project::getProjectID | ( | ) | const |
| juce::String tracktion::engine::Project::getName | ( | ) | const |
| juce::String tracktion::engine::Project::getDescription | ( | ) | const |
|
noexcept |
| juce::File tracktion::engine::Project::getDefaultDirectory | ( | ) | const |
| juce::File tracktion::engine::Project::getDirectoryForMedia | ( | ProjectItem::Category | category | ) | const |
| void tracktion::engine::Project::setName | ( | const juce::String & | newName | ) |
| void tracktion::engine::Project::setDescription | ( | const juce::String & | newDesc | ) |
| void tracktion::engine::Project::createNewProjectId | ( | ) |
| juce::String tracktion::engine::Project::getProjectProperty | ( | const juce::String & | name | ) | const |
| void tracktion::engine::Project::setProjectProperty | ( | const juce::String & | name, |
| const juce::String & | value | ||
| ) |
| void tracktion::engine::Project::refreshProjectPropertiesFromFile | ( | ) |
| bool tracktion::engine::Project::isLibraryProject | ( | ) | const |
| bool tracktion::engine::Project::askAboutTempoDetect | ( | const juce::File & | , |
| bool & | shouldSetAutoTempo | ||
| ) | const |
| juce::Array< ProjectItemID > tracktion::engine::Project::findOrphanItems | ( | ) |
| int tracktion::engine::Project::getNumProjectItems | ( | ) |
| ProjectItemID tracktion::engine::Project::getProjectItemID | ( | int | index | ) |
| juce::Array< ProjectItemID > tracktion::engine::Project::getAllProjectItemIDs | ( | ) | const |
| juce::Array< int > tracktion::engine::Project::getAllItemIDs | ( | ) | const |
| ProjectItem::Ptr tracktion::engine::Project::getProjectItemAt | ( | int | index | ) |
| juce::Array< ProjectItem::Ptr > tracktion::engine::Project::getAllProjectItems | ( | ) |
| int tracktion::engine::Project::getIndexOf | ( | ProjectItemID | ) | const |
| ProjectItem::Ptr tracktion::engine::Project::getProjectItemForID | ( | ProjectItemID | ) |
| ProjectItem::Ptr tracktion::engine::Project::getProjectItemForFile | ( | const juce::File & | file | ) |
| ProjectItem::Ptr tracktion::engine::Project::createNewItem | ( | const juce::File & | fileToReference, |
| const juce::String & | type, | ||
| const juce::String & | name, | ||
| const juce::String & | description, | ||
| const ProjectItem::Category | cat, | ||
| bool | atTopOfList | ||
| ) |
Returns an existing object if there is one.
If not, it will use the given name and description to create a new one
| bool tracktion::engine::Project::removeProjectItem | ( | ProjectItemID | , |
| bool | deleteSourceMaterial | ||
| ) |
| void tracktion::engine::Project::moveProjectItem | ( | int | indexToMoveFrom, |
| int | indexToMoveTo | ||
| ) |
| ProjectItem::Ptr tracktion::engine::Project::createNewEdit | ( | ) |
| void tracktion::engine::Project::redirectIDsFromProject | ( | int | oldProjId, |
| int | newProjId | ||
| ) |
Tells all exportables in all edits to change this project ID.
| void tracktion::engine::Project::mergeArchiveContents | ( | const juce::File & | archiveFile | ) |
| void tracktion::engine::Project::mergeOtherProjectIntoThis | ( | const juce::File & | otherProject | ) |
| void tracktion::engine::Project::refreshFolderStructure | ( | ) |
makes sure all media is in the correct sub folder
| void tracktion::engine::Project::createDefaultFolders | ( | ) |
| void tracktion::engine::Project::searchFor | ( | juce::Array< ProjectItemID > & | results, |
| SearchOperation & | |||
| ) |
this will load the keyword table, and do a search
|
overridevirtual |
Subclasses must return a description of what they are.
Implements tracktion::engine::Selectable.
| void tracktion::engine::Project::lockFile | ( | ) |
Stops anyone writing/moving the project file.
| void tracktion::engine::Project::unlockFile | ( | ) |
| Engine& tracktion::engine::Project::engine |
| ProjectManager& tracktion::engine::Project::projectManager |