JUCE: BufferingAudioSource Class Reference

JUCE

- Main Page
- Related Pages
- Modules
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Loading...
Searching...
No Matches
Public Member Functions | List of all members
BufferingAudioSource Class Reference
juce_audio_basics » sources

An AudioSource which takes another source as input, and buffers it using a thread. More...

`#include <juce_BufferingAudioSource.h>`

Inheritance diagram for BufferingAudioSource:

## Public Member Functions
| BufferingAudioSource (PositionableAudioSource *source, TimeSliceThread &backgroundThread, bool deleteSourceWhenDeleted, int numberOfSamplesToBuffer, int numberOfChannels=2, bool prefillBufferOnPrepareToPlay=true)
| Creates a BufferingAudioSource.
| ~BufferingAudioSource () override
| Destructor.
void | prepareToPlay (int samplesPerBlockExpected, double sampleRate) override
| Implementation of the AudioSource method.
void | releaseResources () override
| Implementation of the AudioSource method.
void | getNextAudioBlock (const AudioSourceChannelInfo &) override
| Implementation of the AudioSource method.
void | setNextReadPosition (int64 newPosition) override
| Implements the PositionableAudioSource method.
int64 | getNextReadPosition () const override
| Implements the PositionableAudioSource method.
int64 | getTotalLength () const override
| Implements the PositionableAudioSource method.
bool | isLooping () const override
| Implements the PositionableAudioSource method.
bool | waitForNextAudioBlockReady (const AudioSourceChannelInfo &info, const uint32 timeout)
| A useful function to block until the next the buffer info can be filled.
Public Member Functions inherited from PositionableAudioSource
| ~PositionableAudioSource () override=default
| Destructor.
virtual void | setNextReadPosition (int64 newPosition)=0
| Tells the stream to move to a new position.
virtual int64 | getNextReadPosition () const =0
| Returns the position from which the next block will be returned.
virtual int64 | getTotalLength () const =0
| Returns the total length of the stream (in samples).
virtual bool | isLooping () const =0
| Returns true if this source is actually playing in a loop.
virtual void | setLooping (bool shouldLoop)
| Tells the source whether you'd like it to play in a loop.
Public Member Functions inherited from AudioSource
virtual | ~AudioSource ()=default
| Destructor.
virtual void | prepareToPlay (int samplesPerBlockExpected, double sampleRate)=0
| Tells the source to prepare for playing.
virtual void | releaseResources ()=0
| Allows the source to release anything it no longer needs after playback has stopped.
virtual void | getNextAudioBlock (const AudioSourceChannelInfo &bufferToFill)=0
| Called repeatedly to fetch subsequent blocks of audio data.

## Additional Inherited Members
Protected Member Functions inherited from PositionableAudioSource
| PositionableAudioSource ()=default
| Creates the PositionableAudioSource.
Protected Member Functions inherited from AudioSource
| AudioSource ()=default
| Creates an AudioSource.

## Detailed Description

An AudioSource which takes another source as input, and buffers it using a thread.

Create this as a wrapper around another thread, and it will read-ahead with a background thread to smooth out playback. You can either create one of these directly, or use it indirectly using an AudioTransportSource.

See also
  PositionableAudioSource, AudioTransportSource

## Constructor & Destructor Documentation

## ◆ BufferingAudioSource()

BufferingAudioSource::BufferingAudioSource | ( | PositionableAudioSource * | source,
|  | TimeSliceThread & | backgroundThread,
|  | bool | deleteSourceWhenDeleted,
|  | int | numberOfSamplesToBuffer,
|  | int | numberOfChannels = `2`,
|  | bool | prefillBufferOnPrepareToPlay = `true`
| ) |  |

Creates a BufferingAudioSource.

Parameters

  source | the input source to read from
  backgroundThread | a background thread that will be used for the background read-ahead. This object must not be deleted until after any BufferingAudioSources that are using it have been deleted!
  deleteSourceWhenDeleted | if true, then the input source object will be deleted when this object is deleted
  numberOfSamplesToBuffer | the size of buffer to use for reading ahead
  numberOfChannels | the number of channels that will be played
  prefillBufferOnPrepareToPlay | if true, then calling prepareToPlay on this object will block until the buffer has been filled

## ◆ ~BufferingAudioSource()

BufferingAudioSource::~BufferingAudioSource | ( |  | ) |
| override

Destructor.

The input source may be deleted depending on whether the deleteSourceWhenDeleted flag was set in the constructor.

## Member Function Documentation

## ◆ prepareToPlay()

void BufferingAudioSource::prepareToPlay | ( | int | samplesPerBlockExpected,
|  | double | sampleRate
| ) |  |
| overridevirtual

Implementation of the AudioSource method.

Implements AudioSource.

## ◆ releaseResources()

void BufferingAudioSource::releaseResources | ( |  | ) |
| overridevirtual

Implementation of the AudioSource method.

Implements AudioSource.

## ◆ getNextAudioBlock()

void BufferingAudioSource::getNextAudioBlock | ( | const AudioSourceChannelInfo & |  | ) |
| overridevirtual

Implementation of the AudioSource method.

Implements AudioSource.

## ◆ setNextReadPosition()

void BufferingAudioSource::setNextReadPosition | ( | int64 | newPosition | ) |
| overridevirtual

Implements the PositionableAudioSource method.

Implements PositionableAudioSource.

## ◆ getNextReadPosition()

int64 BufferingAudioSource::getNextReadPosition | ( |  | ) | const
| overridevirtual

Implements the PositionableAudioSource method.

Implements PositionableAudioSource.

## ◆ getTotalLength()

int64 BufferingAudioSource::getTotalLength | ( |  | ) | const
| overridevirtual

Implements the PositionableAudioSource method.

Implements PositionableAudioSource.

## ◆ isLooping()

bool BufferingAudioSource::isLooping | ( |  | ) | const
| overridevirtual

Implements the PositionableAudioSource method.

Implements PositionableAudioSource.

## ◆ waitForNextAudioBlockReady()

bool BufferingAudioSource::waitForNextAudioBlockReady | ( | const AudioSourceChannelInfo & | info,
|  | const uint32 | timeout
| ) |  |

A useful function to block until the next the buffer info can be filled.

This is useful for offline rendering.

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

- juce_BufferingAudioSource.h