Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | List of all members
ARAAudioSource Class Reference

Base class representing an ARA audio source. More...

#include <juce_ARAModelObjects.h>

Inheritance diagram for ARAAudioSource:

Public Types

using PropertiesPtr = ARA::PlugIn::PropertiesPtr<ARA::ARAAudioSourceProperties>
 
using ARAAnalysisProgressState = ARA::ARAAnalysisProgressState
 
using Listener = ARAAudioSourceListener
 

Public Member Functions

template<typename Document_t = ARADocument>
Document_t * getDocument () const noexcept
 Returns the result of ARA::PlugIn::AudioSource::getDocument() with the pointer cast to ARADocument*.
 
template<typename AudioModification_t = ARAAudioModification>
const std::vector< AudioModification_t * > & getAudioModifications () const noexcept
 Returns the result of ARA::PlugIn::AudioSource::getAudioModifications() with the pointers within cast to ARAAudioModification*.
 
size_t getNumChildren () const noexcept override
 Returns the number of ARA model objects aggregated by this object.
 
ARAObjectgetChild (size_t index) override
 Returns the child object associated with the given index.
 
ARAObjectgetParent () override
 Returns the ARA model object that aggregates this object.
 
void visit (ARAObjectVisitor &visitor) override
 Allows the retrieval of the concrete type of a model object.
 
void notifyAnalysisProgressStarted ()
 Notify the ARA host and any listeners of analysis progress.
 
void notifyAnalysisProgressUpdated (float progress)
 Notify the ARA host and any listeners of analysis progress.
 
void notifyAnalysisProgressCompleted ()
 Notify the ARA host and any listeners of analysis progress.
 
void notifyContentChanged (ARAContentUpdateScopes scopeFlags, bool notifyARAHost)
 Notify the ARA host and any listeners of a content update initiated by the plug-in.
 
- Public Member Functions inherited from ARAListenableModelClass< ARAAudioSourceListener >
 ARAListenableModelClass ()=default
 Constructor.
 
virtual ~ARAListenableModelClass ()=default
 Destructor.
 
void addListener (ARAAudioSourceListener *l)
 Subscribe l to notified by changes to the object.
 
void removeListener (ARAAudioSourceListener *l)
 Unsubscribe l from object notifications.
 
void notifyListeners (Callback &&callback)
 Call the provided callback for each of the added listeners.
 
- Public Member Functions inherited from ARAObject
virtual ~ARAObject ()=default
 Destructor.
 
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.
 

Public Attributes

friend ARADocumentController
 
ARA::PlugIn::AnalysisProgressTracker internalAnalysisProgressTracker
 

Detailed Description

Base class representing an ARA audio source.

Member Typedef Documentation

◆ PropertiesPtr

using ARAAudioSource::PropertiesPtr = ARA::PlugIn::PropertiesPtr<ARA::ARAAudioSourceProperties>

◆ ARAAnalysisProgressState

using ARAAudioSource::ARAAnalysisProgressState = ARA::ARAAnalysisProgressState

◆ Listener

Member Function Documentation

◆ getDocument()

template<typename Document_t = ARADocument>
Document_t * ARAAudioSource::getDocument ( ) const
noexcept

Returns the result of ARA::PlugIn::AudioSource::getDocument() with the pointer cast to ARADocument*.

If you have overridden ARADocumentControllerSpecialisation::doCreateDocument(), then you can use the template parameter to cast the pointers to your subclass of ARADocument.

◆ getAudioModifications()

template<typename AudioModification_t = ARAAudioModification>
const std::vector< AudioModification_t * > & ARAAudioSource::getAudioModifications ( ) const
noexcept

Returns the result of ARA::PlugIn::AudioSource::getAudioModifications() with the pointers within cast to ARAAudioModification*.

If you have overridden ARADocumentControllerSpecialisation::doCreateAudioModification(), then you can use the template parameter to cast the pointers to your subclass of ARAAudioModification.

◆ getNumChildren()

size_t ARAAudioSource::getNumChildren ( ) const
overridevirtualnoexcept

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.

Implements ARAObject.

◆ getChild()

ARAObject * ARAAudioSource::getChild ( size_t index)
overridevirtual

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.

Implements ARAObject.

◆ getParent()

ARAObject * ARAAudioSource::getParent ( )
overridevirtual

Returns the ARA model object that aggregates this object.

Returns nullptr for the ARADocument root object.

Implements ARAObject.

◆ visit()

void ARAAudioSource::visit ( ARAObjectVisitor & visitor)
overridevirtual

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.

Implements ARAObject.

References ARAObjectVisitor::visitAudioSource().

◆ notifyAnalysisProgressStarted()

void ARAAudioSource::notifyAnalysisProgressStarted ( )

Notify the ARA host and any listeners of analysis progress.

Contrary to most ARA functions, this call can be made from any thread. The implementation will enqueue these notifications and later post them from the message thread. Calling code must ensure start and completion state are always balanced, and must send updates in ascending order.

◆ notifyAnalysisProgressUpdated()

void ARAAudioSource::notifyAnalysisProgressUpdated ( float progress)

Notify the ARA host and any listeners of analysis progress.

Contrary to most ARA functions, this call can be made from any thread. The implementation will enqueue these notifications and later post them from the message thread. Calling code must ensure start and completion state are always balanced, and must send updates in ascending order.

Parameters
progressProgress normalized to the 0..1 range.

◆ notifyAnalysisProgressCompleted()

void ARAAudioSource::notifyAnalysisProgressCompleted ( )

Notify the ARA host and any listeners of analysis progress.

Contrary to most ARA functions, this call can be made from any thread. The implementation will enqueue these notifications and later post them from the message thread. Calling code must ensure start and completion state are always balanced, and must send updates in ascending order.

◆ notifyContentChanged()

void ARAAudioSource::notifyContentChanged ( ARAContentUpdateScopes scopeFlags,
bool notifyARAHost )

Notify the ARA host and any listeners of a content update initiated by the plug-in.

This must be called by the plug-in model management code on the message thread whenever updating the internal content representation, such as after successfully analyzing a new tempo map. Listeners will be notified immediately. If notifyARAHost is true, a notification to the host will be enqueued and sent out the next time it polls for updates. notifyARAHost must be false if the update was triggered by the host via doUpdateAudioSourceContent(). Furthermore, notifyARAHost must be false if the updated content is being restored from an archive.

Parameters
scopeFlagsThe scope of the content update.
notifyARAHostIf true, the ARA host will be notified of the content change.

Member Data Documentation

◆ ARADocumentController

friend ARAAudioSource::ARADocumentController

◆ internalAnalysisProgressTracker

ARA::PlugIn::AnalysisProgressTracker ARAAudioSource::internalAnalysisProgressTracker

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