BufferingAudioSource Class Reference
juce_audio_basics » sources

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

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. More...
| ~BufferingAudioSource () override
| Destructor. More...
void | prepareToPlay (int samplesPerBlockExpected, double sampleRate) override
| Implementation of the AudioSource method. More...
void | releaseResources () override
| Implementation of the AudioSource method. More...
void | getNextAudioBlock (const AudioSourceChannelInfo &) override
| Implementation of the AudioSource method. More...
void | setNextReadPosition (int64 newPosition) override
| Implements the PositionableAudioSource method. More...
int64 | getNextReadPosition () const override
| Implements the PositionableAudioSource method. More...
int64 | getTotalLength () const override
| Implements the PositionableAudioSource method. More...
bool | isLooping () const override
| Implements the PositionableAudioSource method. More...
bool | waitForNextAudioBlockReady (const AudioSourceChannelInfo &info, const uint32 timeout)
| A useful function to block until the next the buffer info can be filled. More...
Public Member Functions inherited from PositionableAudioSource
| ~PositionableAudioSource () override=default
| Destructor. More...
virtual void | setLooping (bool shouldLoop)
| Tells the source whether you'd like it to play in a loop. More...
Public Member Functions inherited from AudioSource
virtual | ~AudioSource ()=default
| Destructor. More...

## Additional Inherited Members

Protected Member Functions inherited from PositionableAudioSource
| PositionableAudioSource ()=default
| Creates the PositionableAudioSource. More...
Protected Member Functions inherited from AudioSource
| AudioSource ()=default
| Creates an AudioSource. More...

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

override virtual

Implementation of the AudioSource method.

Implements AudioSource.

## releaseResources()

void BufferingAudioSource::releaseResources | ( |  | ) |

override virtual

Implementation of the AudioSource method.

Implements AudioSource.

## getNextAudioBlock()

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

override virtual

Implementation of the AudioSource method.

Implements AudioSource.

## setNextReadPosition()

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

override virtual

Implements the PositionableAudioSource method.

Implements PositionableAudioSource.

## getNextReadPosition()

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

override virtual

Implements the PositionableAudioSource method.

Implements PositionableAudioSource.

## getTotalLength()

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

override virtual

Implements the PositionableAudioSource method.

Implements PositionableAudioSource.

References PositionableAudioSource::getTotalLength().

## isLooping()

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

override virtual

Implements the PositionableAudioSource method.

Implements PositionableAudioSource.

References PositionableAudioSource::isLooping().

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