Loading...
Searching...
No Matches
juce::ARAPlaybackRegionReader Class Reference

`#include <juce_ARAAudioReaders.h>`

Inheritance diagram for juce::ARAPlaybackRegionReader:

## Public Member Functions

| ARAPlaybackRegionReader (ARAPlaybackRegion *playbackRegion)
| ARAPlaybackRegionReader (double sampleRate, int numChannels, const std::vector< ARAPlaybackRegion * > &playbackRegions)
bool | isValid () const
void | invalidate ()
bool | readSamples (int *const *destSamples, int numDestChannels, int startOffsetInDestBuffer, int64 startSampleInFile, int numSamples) override
void | willUpdatePlaybackRegionProperties (ARAPlaybackRegion *playbackRegion, ARAPlaybackRegion::PropertiesPtr newProperties) override
void | didUpdatePlaybackRegionContent (ARAPlaybackRegion *playbackRegion, ARAContentUpdateScopes scopeFlags) override
void | willDestroyPlaybackRegion (ARAPlaybackRegion *playbackRegion) override
Public Member Functions inherited from juce::AudioFormatReader
virtual | ~AudioFormatReader ()
const String & | getFormatName () const noexcept
bool | read (float *const *destChannels, int numDestChannels, int64 startSampleInSource, int numSamplesToRead)
bool | read (int *const *destChannels, int numDestChannels, int64 startSampleInSource, int numSamplesToRead, bool fillLeftoverChannelsWithCopies)
bool | read (AudioBuffer< float > *buffer, int startSampleInDestBuffer, int numSamples, int64 readerStartSample, bool useReaderLeftChan, bool useReaderRightChan)
virtual void | readMaxLevels (int64 startSample, int64 numSamples, Range< float > *results, int numChannelsToRead)
virtual void | readMaxLevels (int64 startSample, int64 numSamples, float &lowestLeft, float &highestLeft, float &lowestRight, float &highestRight)
int64 | searchForLevel (int64 startSample, int64 numSamplesToSearch, double magnitudeRangeMinimum, double magnitudeRangeMaximum, int minimumConsecutiveSamples)
virtual AudioChannelSet | getChannelLayout ()

## Public Attributes

int64 | startInSamples = 0
Public Attributes inherited from juce::AudioFormatReader
double | sampleRate = 0
unsigned int | bitsPerSample = 0
int64 | lengthInSamples = 0
unsigned int | numChannels = 0
bool | usesFloatingPointData = false
StringPairArray | metadataValues
InputStream * | input

## Additional Inherited Members

Protected Member Functions inherited from juce::AudioFormatReader
| AudioFormatReader (InputStream *sourceStream, const String &formatName)
Static Protected Member Functions inherited from juce::AudioFormatReader
static void | clearSamplesBeyondAvailableLength (int *const *destChannels, int numDestChannels, int startOffsetInDestBuffer, int64 startSampleInFile, int &numSamples, int64 fileLengthInSamples)

## Detailed Description

Subclass of AudioFormatReader that reads samples from a group of playback regions.

Plug-Ins typically use this to draw the output of a playback region in their UI.

In order to read from playback regions, the reader requires an audio processor that acts as ARA playback renderer. Configuring the audio processor for real-time operation results in the reader being real-time capable too, unlike most other AudioFormatReaders. The reader instance will take care of adding all regions being read to the renderer and invoke its processBlock function in order to read the region samples.

The reader becomes invalid if

- any region properties are updated in a way that would affect its samples,
- any region content is updated in a way that would affect its samples, or
- any of its regions are destroyed.

Definition at line 138 of file juce_ARAAudioReaders.h.

## Constructor & Destructor Documentation

## ARAPlaybackRegionReader() [1/2]

juce::ARAPlaybackRegionReader::ARAPlaybackRegionReader | ( | ARAPlaybackRegion * | playbackRegion | ) |

explicit

Create an ARAPlaybackRegionReader instance to read the given `playbackRegion`, using the sample rate and channel count of the underlying ARAAudioSource.

Parameters

  playbackRegion | The playback region that should be read - must not be nullptr!

Definition at line 162 of file juce_ARAAudioReaders.cpp.

Referenced by ARAPlaybackRegionReader().

## ARAPlaybackRegionReader() [2/2]

juce::ARAPlaybackRegionReader::ARAPlaybackRegionReader | ( | double | sampleRate,
|  | int | numChannels,
|  | const std::vector< ARAPlaybackRegion * > & | playbackRegions )

Create an ARAPlaybackRegionReader instance to read the given `playbackRegions`

Parameters

  sampleRate | The sample rate that should be used for reading.
  numChannels | The channel count that should be used for reading.
  playbackRegions | The vector of playback regions that should be read - must not be empty! All regions must be part of the same ARADocument.

Definition at line 168 of file juce_ARAAudioReaders.cpp.

## ~ARAPlaybackRegionReader()

juce::ARAPlaybackRegionReader::~ARAPlaybackRegionReader | ( |  | ) |

override

Definition at line 221 of file juce_ARAAudioReaders.cpp.

## Member Function Documentation

## didUpdatePlaybackRegionContent()

void juce::ARAPlaybackRegionReader::didUpdatePlaybackRegionContent | ( | ARAPlaybackRegion * | playbackRegion,
|  | ARAContentUpdateScopes | scopeFlags )

override

Definition at line 293 of file juce_ARAAudioReaders.cpp.

## invalidate()

void juce::ARAPlaybackRegionReader::invalidate | ( |  | ) |

Invalidate the reader - this should be called if the sample content of any of the reader's ARAPlaybackRegions changes.

Definition at line 226 of file juce_ARAAudioReaders.cpp.

## isValid()

bool juce::ARAPlaybackRegionReader::isValid | ( |  | ) | const

inline

Returns true as long as any of the reader's underlying playback region's haven't changed.

Definition at line 162 of file juce_ARAAudioReaders.h.

Referenced by invalidate(), and readSamples().

## readSamples()

bool juce::ARAPlaybackRegionReader::readSamples | ( | int *const * | destChannels,
|  | int | numDestChannels,
|  | int | startOffsetInDestBuffer,
|  | int64 | startSampleInFile,
|  | int | numSamples )

override virtual

Subclasses must implement this method to perform the low-level read operation.

Callers should use read() instead of calling this directly.

Parameters

  destChannels | the array of destination buffers to fill. Some of these pointers may be null
  numDestChannels | the number of items in the destChannels array. This value is guaranteed not to be greater than the number of channels that this reader object contains
  startOffsetInDestBuffer | the number of samples from the start of the dest data at which to begin writing
  startSampleInFile | the number of samples into the source data at which to begin reading. This value is guaranteed to be >= 0.
  numSamples | the number of samples to read

Implements juce::AudioFormatReader.

Definition at line 240 of file juce_ARAAudioReaders.cpp.

## willDestroyPlaybackRegion()

void juce::ARAPlaybackRegionReader::willDestroyPlaybackRegion | ( | ARAPlaybackRegion * | playbackRegion | ) |

override

Definition at line 303 of file juce_ARAAudioReaders.cpp.

## willUpdatePlaybackRegionProperties()

void juce::ARAPlaybackRegionReader::willUpdatePlaybackRegionProperties | ( | ARAPlaybackRegion * | playbackRegion,
|  | ARAPlaybackRegion::PropertiesPtr | newProperties )

override

Definition at line 276 of file juce_ARAAudioReaders.cpp.

## Member Data Documentation

## startInSamples

int64 juce::ARAPlaybackRegionReader::startInSamples = 0

The starting point of the reader in playback samples

Definition at line 182 of file juce_ARAAudioReaders.h.

Referenced by ARAPlaybackRegionReader(), and readSamples().

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

- juce_ARAAudioReaders.h
- juce_ARAAudioReaders.cpp