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

## Detailed Description

An AudioFormatReader that uses a background thread to pre-read data from another reader.

See also
  AudioFormatReader

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

- juce_audio_formats/format/juce_BufferingAudioFormatReader.h

Inheritance diagram for juce::BufferingAudioReader:

## Public Member Functions

| BufferingAudioReader (AudioFormatReader *sourceReader, TimeSliceThread &timeSliceThread, int samplesToBuffer)
| Creates a reader.
| ~BufferingAudioReader () override
void | setReadTimeout (int timeoutMilliseconds) noexcept
| Sets a number of milliseconds that the reader can block for in its readSamples() method before giving up and returning silence.
bool | readSamples (int *const *destSamples, int numDestChannels, int startOffsetInDestBuffer, int64 startSampleInFile, int numSamples) override
| Subclasses must implement this method to perform the low-level read operation.
Public Member Functions inherited from juce::AudioFormatReader
virtual | ~AudioFormatReader ()
| Destructor.
const String & | getFormatName () const noexcept
| Returns a description of what type of format this is.
bool | read (float *const *destChannels, int numDestChannels, int64 startSampleInSource, int numSamplesToRead)
| Reads samples from the stream.
bool | read (int *const *destChannels, int numDestChannels, int64 startSampleInSource, int numSamplesToRead, bool fillLeftoverChannelsWithCopies)
| Reads samples from the stream.
bool | read (AudioBuffer< float > *buffer, int startSampleInDestBuffer, int numSamples, int64 readerStartSample, bool useReaderLeftChan, bool useReaderRightChan)
| Fills a section of an AudioBuffer from this reader.
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.
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.
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.
virtual AudioChannelSet | getChannelLayout ()
| Get the channel layout of the audio stream.

## Additional Inherited Members

Public Attributes inherited from juce::AudioFormatReader
double | sampleRate = 0
| The sample-rate of the stream.
unsigned int | bitsPerSample = 0
| The number of bits per sample, e.g.
int64 | lengthInSamples = 0
| The total number of samples in the audio stream.
unsigned int | numChannels = 0
| The total number of channels in the audio stream.
bool | usesFloatingPointData = false
| Indicates whether the data is floating-point or fixed.
StringPairArray | metadataValues
| A set of metadata values that the reader has pulled out of the stream.
InputStream * | input
| The input stream, for use by subclasses.
Protected Member Functions inherited from juce::AudioFormatReader
| AudioFormatReader (InputStream *sourceStream, const String &formatName)
| Creates an AudioFormatReader object.
Static Protected Member Functions inherited from juce::AudioFormatReader
static void | clearSamplesBeyondAvailableLength (int *const *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.

## Constructors and Destructors

## BufferingAudioReader()

juce::BufferingAudioReader::BufferingAudioReader | ( | AudioFormatReader * | sourceReader,
|  | TimeSliceThread & | timeSliceThread,
|  | int | samplesToBuffer )

Creates a reader.

Parameters

  sourceReader | the source reader to wrap. This BufferingAudioReader takes ownership of this object and will delete it later when no longer needed
  timeSliceThread | the thread that should be used to do the background reading. Make sure that the thread you supply is running, and won't be deleted while the reader object still exists.
  samplesToBuffer | the total number of samples to buffer ahead.

References juce::AudioFormatReader::AudioFormatReader(), and juce::TimeSliceClient::TimeSliceThread.

## ~BufferingAudioReader()

juce::BufferingAudioReader::~BufferingAudioReader | ( |  | ) |

override

## Member Functions

## setReadTimeout()

void juce::BufferingAudioReader::setReadTimeout | ( | int | timeoutMilliseconds | ) |

noexcept

Sets a number of milliseconds that the reader can block for in its readSamples() method before giving up and returning silence.

A value of less that 0 means "wait forever". The default timeout is 0.

## readSamples()

bool juce::BufferingAudioReader::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.

References juce::AudioFormatReader::AudioFormatReader().

### Purchase

Get JUCE

### Discover

What's New in JUCE Features

### Learn

Documentaion Tutorials Made with JUCE Resources

### Support

JUCE Forum Newsletter Archive

### About

Contact Us JUCE Legal JUCE Licensing FAQ

### Events

Audio Developer Conference
© Raw Material Software Limited