TracktionEngine
|
#include <tracktion_ValueTreeUtilities.h>
Public Types | |
using | ScopedLockType = typename CriticalSectionType::ScopedLockType |
Public Member Functions | |
ValueTreeObjectList (const juce::ValueTree &parentTree) | |
~ValueTreeObjectList () override | |
int | size () const |
bool | isEmpty () const noexcept |
ObjectType * | operator[] (int idx) const |
ObjectType * | at (int idx) |
ObjectType ** | begin () |
ObjectType *const * | begin () const |
ObjectType ** | end () |
ObjectType *const * | end () const |
void | rebuildObjects () |
void | freeObjects () |
virtual bool | isSuitableType (const juce::ValueTree &) const =0 |
virtual ObjectType * | createNewObject (const juce::ValueTree &)=0 |
virtual void | deleteObject (ObjectType *)=0 |
virtual void | newObjectAdded (ObjectType *)=0 |
virtual void | objectRemoved (ObjectType *)=0 |
virtual void | objectOrderChanged ()=0 |
void | valueTreeChildAdded (juce::ValueTree &, juce::ValueTree &tree) override |
void | valueTreeChildRemoved (juce::ValueTree &exParent, juce::ValueTree &tree, int) override |
void | valueTreeChildOrderChanged (juce::ValueTree &tree, int, int) override |
void | valueTreePropertyChanged (juce::ValueTree &, const juce::Identifier &) override |
void | valueTreeParentChanged (juce::ValueTree &) override |
void | valueTreeRedirected (juce::ValueTree &) override |
int | compareElements (ObjectType *first, ObjectType *second) const |
Public Attributes | |
juce::Array< ObjectType * > | objects |
CriticalSectionType | arrayLock |
Protected Member Functions | |
void | deleteAllObjects () |
bool | isChildTree (juce::ValueTree &v) const |
int | indexOf (const juce::ValueTree &v) const noexcept |
void | sortArray () |
Protected Attributes | |
juce::ValueTree | parent |
using tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::ScopedLockType = typename CriticalSectionType::ScopedLockType |
tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::ValueTreeObjectList | ( | const juce::ValueTree & | parentTree | ) |
|
override |
int tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::size | ( | ) | const |
|
noexcept |
ObjectType * tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::operator[] | ( | int | idx | ) | const |
ObjectType * tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::at | ( | int | idx | ) |
ObjectType ** tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::begin | ( | ) |
ObjectType *const * tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::begin | ( | ) | const |
ObjectType ** tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::end | ( | ) |
ObjectType *const * tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::end | ( | ) | const |
void tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::rebuildObjects | ( | ) |
References tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::createNewObject(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::isSuitableType(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::objects, and tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::parent.
void tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::freeObjects | ( | ) |
|
pure virtual |
Implemented in tracktion::engine::ModifierList, tracktion::engine::TrackCompManager::TrackComp, tracktion::engine::TrackList, tracktion::engine::ClipEffects, and tracktion::engine::InputDeviceInstance::DestinationList.
Referenced by tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::isChildTree(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::rebuildObjects(), and tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::valueTreeChildRemoved().
|
pure virtual |
Implemented in tracktion::engine::ModifierList, tracktion::engine::TrackCompManager::TrackComp, tracktion::engine::TrackList, tracktion::engine::ClipEffects, and tracktion::engine::InputDeviceInstance::DestinationList.
Referenced by tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::rebuildObjects(), and tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::valueTreeChildAdded().
|
pure virtual |
Implemented in tracktion::engine::ClipEffects, tracktion::engine::ModifierList, and tracktion::engine::TrackList.
Referenced by tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::deleteAllObjects(), and tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::valueTreeChildRemoved().
|
pure virtual |
|
pure virtual |
|
pure virtual |
Implemented in tracktion::engine::ModifierList, tracktion::engine::ClipEffects, tracktion::engine::TrackCompManager::TrackComp, tracktion::engine::TrackList, tracktion::engine::InputDeviceInstance::DestinationList, and tracktion::engine::SortedValueTreeObjectList< ObjectType >.
Referenced by tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::valueTreeChildOrderChanged().
|
override |
References tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::arrayLock, tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::createNewObject(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::isChildTree(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::newObjectAdded(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::objects, and tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::parent.
|
override |
References tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::arrayLock, tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::deleteObject(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::indexOf(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::isSuitableType(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::objectRemoved(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::objects, and tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::parent.
|
override |
References tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::arrayLock, tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::objectOrderChanged(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::parent, and tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::sortArray().
|
override |
|
override |
|
override |
|
protected |
References tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::arrayLock, tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::deleteObject(), and tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::objects.
Referenced by tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::freeObjects().
|
protected |
References tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::isSuitableType(), and tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::parent.
Referenced by tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::valueTreeChildAdded(), and tracktion::engine::SortedValueTreeObjectList< ObjectType >::valueTreePropertyChanged().
|
protectednoexcept |
|
protected |
int tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::compareElements | ( | ObjectType * | first, |
ObjectType * | second | ||
) | const |
juce::Array<ObjectType*> tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::objects |
Referenced by tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::at(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::begin(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::begin(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::deleteAllObjects(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::end(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::end(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::indexOf(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::operator[](), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::rebuildObjects(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::size(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::sortArray(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::valueTreeChildAdded(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::valueTreeChildRemoved(), and tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::~ValueTreeObjectList().
CriticalSectionType tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::arrayLock |
Referenced by tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::deleteAllObjects(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::valueTreeChildAdded(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::valueTreeChildOrderChanged(), and tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::valueTreeChildRemoved().
|
protected |
Referenced by tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::compareElements(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::freeObjects(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::isChildTree(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::rebuildObjects(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::valueTreeChildAdded(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::valueTreeChildOrderChanged(), tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::valueTreeChildRemoved(), and tracktion::engine::ValueTreeObjectList< ObjectType, CriticalSectionType >::ValueTreeObjectList().