JUCE v8.0.9
JUCE API
 
Loading...
Searching...
No Matches
juce::ARAPlaybackRegion Class Reference

Base class representing an ARA playback region. More...

#include <juce_ARAModelObjects.h>

Inheritance diagram for juce::ARAPlaybackRegion:
Collaboration diagram for juce::ARAPlaybackRegion:

Public Types

enum class  IncludeHeadAndTail {
  no ,
  yes
}
 Used in getTimeRange to indicate whether the head and tail times should be included in the result. More...
 
using Listener = ARAPlaybackRegionListener
 
using PropertiesPtr = ARA::PlugIn::PropertiesPtr< ARA::ARAPlaybackRegionProperties >
 

Public Member Functions

void addListener (ARAPlaybackRegionListener *l)
 Subscribe l to notified by changes to the object.
 
template<typename AudioModification_t = ARAAudioModification>
AudioModification_t * getAudioModification () const noexcept
 Returns the result of ARA::PlugIn::PlaybackRegion::getAudioModification() with the pointer cast to ARAAudioModification*.
 
ARAObjectgetChild (size_t) override
 Returns the child object associated with the given index.
 
double getHeadTime () const
 Get the head length in seconds before the start of the region's playback time.
 
size_t getNumChildren () const noexcept override
 Returns the number of ARA model objects aggregated by this object.
 
ARAObjectgetParent () override
 Returns the ARA model object that aggregates this object.
 
template<typename RegionSequence_t = ARARegionSequence>
RegionSequence_t * getRegionSequence () const noexcept
 Returns the result of ARA::PlugIn::PlaybackRegion::getRegionSequence() with the pointer cast to ARARegionSequence*.
 
Range< int64getSampleRange (double sampleRate, IncludeHeadAndTail includeHeadAndTail=IncludeHeadAndTail::no) const
 Returns the playback sample range of this playback region.
 
double getTailTime () const
 Get the tail length in seconds after the end of the region's playback time.
 
Range< double > getTimeRange (IncludeHeadAndTail includeHeadAndTail=IncludeHeadAndTail::no) const
 Returns the playback time range of this playback region.
 
void notifyContentChanged (ARAContentUpdateScopes scopeFlags, bool notifyARAHost)
 Notify the ARA host and any listeners of a content update initiated by the plug-in.
 
void notifyListeners (Callback &&callback)
 Call the provided callback for each of the added listeners.
 
void removeListener (ARAPlaybackRegionListener *l)
 Unsubscribe l from object notifications.
 
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.
 
void visit (ARAObjectVisitor &visitor) override
 Allows the retrieval of the concrete type of a model object.
 

Private Attributes

ListenerList< ARAPlaybackRegionListenerlisteners
 

Detailed Description

Base class representing an ARA playback region.

@tags{ARA}

Member Typedef Documentation

◆ Listener

◆ PropertiesPtr

using juce::ARAPlaybackRegion::PropertiesPtr = ARA::PlugIn::PropertiesPtr<ARA::ARAPlaybackRegionProperties>

Member Enumeration Documentation

◆ IncludeHeadAndTail

Used in getTimeRange to indicate whether the head and tail times should be included in the result.

Enumerator
no 
yes 

Member Function Documentation

◆ addListener()

Subscribe l to notified by changes to the object.

Parameters
lThe listener instance.

◆ getAudioModification()

template<typename AudioModification_t = ARAAudioModification>
AudioModification_t * juce::ARAPlaybackRegion::getAudioModification ( ) const
inlinenoexcept

Returns the result of ARA::PlugIn::PlaybackRegion::getAudioModification() with the pointer 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.

◆ getChild()

ARAObject * juce::ARAPlaybackRegion::getChild ( size_t  index)
inlineoverridevirtual

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 juce::ARAObject.

◆ getHeadTime()

double juce::ARAPlaybackRegion::getHeadTime ( ) const

Get the head length in seconds before the start of the region's playback time.

◆ getNumChildren()

size_t juce::ARAPlaybackRegion::getNumChildren ( ) const
inlineoverridevirtualnoexcept

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 juce::ARAObject.

◆ getParent()

ARAObject * juce::ARAPlaybackRegion::getParent ( )
overridevirtual

Returns the ARA model object that aggregates this object.

Returns nullptr for the ARADocument root object.

Implements juce::ARAObject.

◆ getRegionSequence()

template<typename RegionSequence_t = ARARegionSequence>
RegionSequence_t * juce::ARAPlaybackRegion::getRegionSequence ( ) const
inlinenoexcept

Returns the result of ARA::PlugIn::PlaybackRegion::getRegionSequence() with the pointer cast to ARARegionSequence*.

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

◆ getSampleRange()

Range< int64 > juce::ARAPlaybackRegion::getSampleRange ( double  sampleRate,
IncludeHeadAndTail  includeHeadAndTail = IncludeHeadAndTail::no 
) const

Returns the playback sample range of this playback region.

Parameters
sampleRateThe rate at which the sample position should be calculated from the time range.
includeHeadAndTailWhether or not the range includes the head and tail time of all playback regions in the sequence.

◆ getTailTime()

double juce::ARAPlaybackRegion::getTailTime ( ) const

Get the tail length in seconds after the end of the region's playback time.

◆ getTimeRange()

Range< double > juce::ARAPlaybackRegion::getTimeRange ( IncludeHeadAndTail  includeHeadAndTail = IncludeHeadAndTail::no) const

Returns the playback time range of this playback region.

Parameters
includeHeadAndTailWhether or not the range includes the head and tail time of all playback regions in the sequence.

◆ notifyContentChanged()

void juce::ARAPlaybackRegion::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 the user edited the pitch of a note in the underlying audio modification. 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.

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

◆ notifyListeners()

void juce::ARAListenableModelClass< ARAPlaybackRegionListener >::notifyListeners ( Callback &&  callback)
inlineinherited

Call the provided callback for each of the added listeners.

◆ removeListener()

void juce::ARAListenableModelClass< ARAPlaybackRegionListener >::removeListener ( ARAPlaybackRegionListener l)
inlineinherited

Unsubscribe l from object notifications.

Parameters
lThe listener instance.

◆ traverse()

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

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 juce::ARAObject::getChild(), juce::ARAObject::getNumChildren(), and juce::ARAObject::traverse().

Referenced by juce::ARAObject::traverse().

◆ visit()

void juce::ARAPlaybackRegion::visit ( ARAObjectVisitor visitor)
inlineoverridevirtual

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 juce::ARAObject.

References juce::ARAObjectVisitor::visitPlaybackRegion().

Member Data Documentation

◆ listeners


The documentation for this class was generated from the following file: