Loading...
Searching...
No Matches
Public Member Functions | List of all members
ARAObject Class Referenceabstract

Common base class for all JUCE ARA model objects to aid with the discovery and traversal of the entire ARA model graph. More...

#include <juce_ARAModelObjects.h>

Inheritance diagram for ARAObject:

Public Member Functions

virtual ~ARAObject ()=default
 Destructor.
 
virtual size_t getNumChildren () const noexcept=0
 Returns the number of ARA model objects aggregated by this object.
 
virtual ARAObjectgetChild (size_t index)=0
 Returns the child object associated with the given index.
 
virtual ARAObjectgetParent ()=0
 Returns the ARA model object that aggregates this object.
 
template<typename Fn >
void traverse (Fn &&fn)
 Implements a depth first traversal of the ARA model graph starting from the current object, and visiting its children recursively.
 
virtual void visit (ARAObjectVisitor &visitor)=0
 Allows the retrieval of the concrete type of a model object.
 

Detailed Description

Common base class for all JUCE ARA model objects to aid with the discovery and traversal of the entire ARA model graph.

Constructor & Destructor Documentation

◆ ~ARAObject()

virtual ARAObject::~ARAObject ( )
virtualdefault

Destructor.

Member Function Documentation

◆ getNumChildren()

virtual size_t ARAObject::getNumChildren ( ) const
pure virtualnoexcept

Returns the number of ARA model objects aggregated by this object.

Objects that are merely referred to, but not aggregated by the current object are not included in this count, e.g. a referenced RegionSequence does not count as a child of the referring PlaybackRegion.

See the ARA documentation's ARA Model Graph Overview for more details.

Implemented in ARADocument, ARAMusicalContext, ARAPlaybackRegion, ARARegionSequence, ARAAudioSource, and ARAAudioModification.

Referenced by traverse().

◆ getChild()

virtual ARAObject * ARAObject::getChild ( size_t index)
pure virtual

Returns the child object associated with the given index.

The index should be smaller than the value returned by getNumChildren().

Note that the index of a particular object may change when the ARA model graph is edited.

Implemented in ARADocument, ARARegionSequence, ARAAudioSource, ARAAudioModification, ARAMusicalContext, and ARAPlaybackRegion.

Referenced by traverse().

◆ getParent()

virtual ARAObject * ARAObject::getParent ( )
pure virtual

Returns the ARA model object that aggregates this object.

Returns nullptr for the ARADocument root object.

Implemented in ARADocument, ARAMusicalContext, ARAPlaybackRegion, ARARegionSequence, ARAAudioSource, and ARAAudioModification.

◆ traverse()

template<typename Fn >
void ARAObject::traverse ( Fn && fn)

Implements a depth first traversal of the ARA model graph starting from the current object, and visiting its children recursively.

The provided function should accept a single ARAObject& parameter.

References getChild(), getNumChildren(), and traverse().

Referenced by traverse().

◆ visit()

virtual void ARAObject::visit ( ARAObjectVisitor & visitor)
pure virtual

Allows the retrieval of the concrete type of a model object.

To use this, create a new class derived from ARAObjectVisitor and override its functions depending on which concrete types you are interested in.

Calling this function inside the function passed to ARAObject::traverse() allows you to map the entire ARA model graph.

Implemented in ARADocument, ARAMusicalContext, ARAPlaybackRegion, ARARegionSequence, ARAAudioSource, and ARAAudioModification.


The documentation for this class was generated from the following file:
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram