An AudioSource which takes another source as input, and buffers it using a thread. More...
#include <juce_BufferingAudioSource.h>
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, 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 | 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. | |
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. | |
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.
BufferingAudioSource::BufferingAudioSource | ( | PositionableAudioSource * | source, |
TimeSliceThread & | backgroundThread, | ||
bool | deleteSourceWhenDeleted, | ||
int | numberOfSamplesToBuffer, | ||
int | numberOfChannels = 2, | ||
bool | prefillBufferOnPrepareToPlay = true ) |
Creates a BufferingAudioSource.
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 |
|
override |
Destructor.
The input source may be deleted depending on whether the deleteSourceWhenDeleted flag was set in the constructor.
|
overridevirtual |
Implementation of the AudioSource method.
Implements AudioSource.
|
overridevirtual |
Implementation of the AudioSource method.
Implements AudioSource.
|
overridevirtual |
Implementation of the AudioSource method.
Implements AudioSource.
|
overridevirtual |
Implements the PositionableAudioSource method.
Implements PositionableAudioSource.
|
overridevirtual |
Implements the PositionableAudioSource method.
Implements PositionableAudioSource.
|
overridevirtual |
Implements the PositionableAudioSource method.
Implements PositionableAudioSource.
|
overridevirtual |
Implements the PositionableAudioSource method.
Implements PositionableAudioSource.
bool BufferingAudioSource::waitForNextAudioBlockReady | ( | const AudioSourceChannelInfo & | info, |
uint32 | timeout ) |
A useful function to block until the next the buffer info can be filled.
This is useful for offline rendering.