JUCE: ARAPlaybackRegionReader Class Reference

JUCE

Public Member Functions | Public Attributes | List of all members
ARAPlaybackRegionReader Class Reference
juce_audio_formats » format

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

`#include <juce_ARAAudioReaders.h>`

Inheritance diagram for ARAPlaybackRegionReader:

## Public Member Functions
| ARAPlaybackRegionReader (ARAPlaybackRegion *playbackRegion)
| Create an ARAPlaybackRegionReader instance to read the given `playbackRegion`, using the sample rate and channel count of the underlying ARAAudioSource. More...
| ARAPlaybackRegionReader (double sampleRate, int numChannels, const std::vector< ARAPlaybackRegion * > &playbackRegions)
| Create an ARAPlaybackRegionReader instance to read the given `playbackRegions`. More...
| ~ARAPlaybackRegionReader () override
bool | isValid () const
| Returns true as long as any of the reader's underlying playback region's haven't changed. More...
void | invalidate ()
| Invalidate the reader - this should be called if the sample content of any of the reader's ARAPlaybackRegions changes. More...
bool | readSamples (int **destSamples, int numDestChannels, int startOffsetInDestBuffer, int64 startSampleInFile, int numSamples) override
| Subclasses must implement this method to perform the low-level read operation. More...
void | willUpdatePlaybackRegionProperties (ARAPlaybackRegion *playbackRegion, ARAPlaybackRegion::PropertiesPtr newProperties) override
| Called before the playback region's properties are updated. More...
void | didUpdatePlaybackRegionContent (ARAPlaybackRegion *playbackRegion, ARAContentUpdateScopes scopeFlags) override
| Called when the playback region's content (i.e. More...
void | willDestroyPlaybackRegion (ARAPlaybackRegion *playbackRegion) override
| Called before the playback region is destroyed. More...
Public Member Functions inherited from AudioFormatReader
virtual | ~AudioFormatReader ()
| Destructor. More...
const String & | getFormatName () const noexcept
| Returns a description of what type of format this is. More...
bool | read (float *const *destChannels, int numDestChannels, int64 startSampleInSource, int numSamplesToRead)
| Reads samples from the stream. More...
bool | read (int *const *destChannels, int numDestChannels, int64 startSampleInSource, int numSamplesToRead, bool fillLeftoverChannelsWithCopies)
| Reads samples from the stream. More...
bool | read (AudioBuffer< float > *buffer, int startSampleInDestBuffer, int numSamples, int64 readerStartSample, bool useReaderLeftChan, bool useReaderRightChan)
| Fills a section of an AudioBuffer from this reader. More...
virtual void | readMaxLevels (int64 startSample, int64 numSamples, Range< float > *results, int numChannelsToRead)
| Finds the highest and lowest sample levels from a section of the audio stream. More...
virtual void | readMaxLevels (int64 startSample, int64 numSamples, float &lowestLeft, float &highestLeft, float &lowestRight, float &highestRight)
| Finds the highest and lowest sample levels from a section of the audio stream. More...
int64 | searchForLevel (int64 startSample, int64 numSamplesToSearch, double magnitudeRangeMinimum, double magnitudeRangeMaximum, int minimumConsecutiveSamples)
| Scans the source looking for a sample whose magnitude is in a specified range. More...
virtual AudioChannelSet | getChannelLayout ()
| Get the channel layout of the audio stream. More...

## Public Attributes
int64 | startInSamples = 0
| The starting point of the reader in playback samples. More...
Public Attributes inherited from AudioFormatReader
double | sampleRate = 0
| The sample-rate of the stream. More...
unsigned int | bitsPerSample = 0
| The number of bits per sample, e.g. More...
int64 | lengthInSamples = 0
| The total number of samples in the audio stream. More...
unsigned int | numChannels = 0
| The total number of channels in the audio stream. More...
bool | usesFloatingPointData = false
| Indicates whether the data is floating-point or fixed. More...
StringPairArray | metadataValues
| A set of metadata values that the reader has pulled out of the stream. More...
InputStream * | input
| The input stream, for use by subclasses. More...

## Additional Inherited Members
Protected Member Functions inherited from AudioFormatReader
| AudioFormatReader (InputStream *sourceStream, const String &formatName)
| Creates an AudioFormatReader object. More...
Static Protected Member Functions inherited from AudioFormatReader
static void | clearSamplesBeyondAvailableLength (int **destChannels, int numDestChannels, int startOffsetInDestBuffer, int64 startSampleInFile, int &numSamples, int64 fileLengthInSamples)
| Used by AudioFormatReader subclasses to clear any parts of the data blocks that lie beyond the end of their available length. More...

## 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.

## Constructor & Destructor Documentation

## ◆ ARAPlaybackRegionReader() [1/2]

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!

## ◆ ARAPlaybackRegionReader() [2/2]

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.

## ◆ ~ARAPlaybackRegionReader()

ARAPlaybackRegionReader::~ARAPlaybackRegionReader | ( |  | ) |
| override

## Member Function Documentation

## ◆ isValid()

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

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

## ◆ invalidate()

void ARAPlaybackRegionReader::invalidate | ( |  | ) |

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

## ◆ readSamples()

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

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 AudioFormatReader.

## ◆ willUpdatePlaybackRegionProperties()

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

Called before the playback region's properties are updated.

Parameters

  playbackRegion | The playback region whose properties will be updated.
  newProperties | The playback region properties that will be assigned to `playbackRegion`.

Reimplemented from ARAPlaybackRegionListener.

## ◆ didUpdatePlaybackRegionContent()

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

Called when the playback region's content (i.e.

samples or notes) changes.

Parameters

  playbackRegion | The playback region with updated content.
  scopeFlags | The scope of the content update.

Reimplemented from ARAPlaybackRegionListener.

## ◆ willDestroyPlaybackRegion()

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

Called before the playback region is destroyed.

Parameters

  playbackRegion | The playback region that will be destroyed.

Reimplemented from ARAPlaybackRegionListener.

## Member Data Documentation

## ◆ startInSamples

int64 ARAPlaybackRegionReader::startInSamples = 0

The starting point of the reader in playback samples.

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

- juce_ARAAudioReaders.h