OpenShot Audio Library | OpenShotAudio 0.4.0
Loading...
Searching...
No Matches
juce::BufferingAudioSource Class Reference

#include <juce_BufferingAudioSource.h>

Inheritance diagram for juce::BufferingAudioSource:
[legend]
Collaboration diagram for juce::BufferingAudioSource:
[legend]

Public Member Functions

 BufferingAudioSource (PositionableAudioSource *source, TimeSliceThread &backgroundThread, bool deleteSourceWhenDeleted, int numberOfSamplesToBuffer, int numberOfChannels=2, bool prefillBufferOnPrepareToPlay=true)
 ~BufferingAudioSource () override
void prepareToPlay (int samplesPerBlockExpected, double sampleRate) override
void releaseResources () override
void getNextAudioBlock (const AudioSourceChannelInfo &) override
void setNextReadPosition (int64 newPosition) override
int64 getNextReadPosition () const override
int64 getTotalLength () const override
bool isLooping () const override
bool waitForNextAudioBlockReady (const AudioSourceChannelInfo &info, uint32 timeout)
Public Member Functions inherited from juce::PositionableAudioSource
 ~PositionableAudioSource () override=default
virtual void setLooping (bool shouldLoop)
Public Member Functions inherited from juce::AudioSource
virtual ~AudioSource ()=default

Additional Inherited Members

Protected Member Functions inherited from juce::PositionableAudioSource
 PositionableAudioSource ()=default
Protected Member Functions inherited from juce::AudioSource
 AudioSource ()=default

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

Definition at line 38 of file juce_BufferingAudioSource.h.

Constructor & Destructor Documentation

◆ BufferingAudioSource()

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

Creates a BufferingAudioSource.

Parameters
sourcethe input source to read from
backgroundThreada 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!
deleteSourceWhenDeletedif true, then the input source object will be deleted when this object is deleted
numberOfSamplesToBufferthe size of buffer to use for reading ahead
numberOfChannelsthe number of channels that will be played
prefillBufferOnPrepareToPlayif true, then calling prepareToPlay on this object will block until the buffer has been filled

Definition at line 26 of file juce_BufferingAudioSource.cpp.

◆ ~BufferingAudioSource()

juce::BufferingAudioSource::~BufferingAudioSource ( )
override

Destructor.

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

Definition at line 44 of file juce_BufferingAudioSource.cpp.

Member Function Documentation

◆ getNextAudioBlock()

void juce::BufferingAudioSource::getNextAudioBlock ( const AudioSourceChannelInfo & info)
overridevirtual

Implementation of the AudioSource method.

Implements juce::AudioSource.

Definition at line 101 of file juce_BufferingAudioSource.cpp.

◆ getNextReadPosition()

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

Implements the PositionableAudioSource method.

Implements juce::PositionableAudioSource.

Definition at line 203 of file juce_BufferingAudioSource.cpp.

◆ getTotalLength()

int64 juce::BufferingAudioSource::getTotalLength ( ) const
inlineoverridevirtual

Implements the PositionableAudioSource method.

Implements juce::PositionableAudioSource.

Definition at line 89 of file juce_BufferingAudioSource.h.

Referenced by waitForNextAudioBlockReady().

◆ isLooping()

bool juce::BufferingAudioSource::isLooping ( ) const
inlineoverridevirtual

Implements the PositionableAudioSource method.

Implements juce::PositionableAudioSource.

Definition at line 92 of file juce_BufferingAudioSource.h.

Referenced by waitForNextAudioBlockReady().

◆ prepareToPlay()

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

Implementation of the AudioSource method.

Implements juce::AudioSource.

Definition at line 50 of file juce_BufferingAudioSource.cpp.

◆ releaseResources()

void juce::BufferingAudioSource::releaseResources ( )
overridevirtual

Implementation of the AudioSource method.

Implements juce::AudioSource.

Definition at line 87 of file juce_BufferingAudioSource.cpp.

Referenced by ~BufferingAudioSource().

◆ setNextReadPosition()

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

Implements the PositionableAudioSource method.

Implements juce::PositionableAudioSource.

Definition at line 213 of file juce_BufferingAudioSource.cpp.

◆ waitForNextAudioBlockReady()

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

Definition at line 160 of file juce_BufferingAudioSource.cpp.


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