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 > |
![]() | |
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 () |
![]() | |
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 |
![]() | |
WeakRef::Master | masterReference |
Additional Inherited Members | |
![]() | |
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 |