Cinder  0.9.1
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
cinder::audio::Source Class Referenceabstract

#include <Source.h>

Inherits cinder::Noncopyable.

Inherited by cinder::audio::SourceFile.

Public Member Functions

virtual ~Source ()
 
size_t getSampleRate () const
 
virtual size_t getNumChannels () const =0
 
virtual size_t getSampleRateNative () const =0
 
size_t getMaxFramesPerRead () const
 
virtual void setMaxFramesPerRead (size_t count)
 
virtual size_t read (Buffer *buffer)=0
 
virtual std::string getMetaData () const
 

Protected Member Functions

 Source (size_t sampleRate)
 
virtual size_t performRead (Buffer *buffer, size_t bufferFrameOffset, size_t numFramesNeeded)=0
 
virtual bool supportsConversion ()
 
void setSampleRate (size_t sampleRate)
 

Protected Attributes

std::unique_ptr< dsp::ConvertermConverter
 
BufferDynamic mConverterReadBuffer
 

Detailed Description

Base class that is used to load and read from an audio source.

Constructor & Destructor Documentation

cinder::audio::Source::~Source ( )
virtual
cinder::audio::Source::Source ( size_t  sampleRate)
protected

Member Function Documentation

size_t cinder::audio::Source::getSampleRate ( ) const

Returns the user facing samplerate (output).

virtual size_t cinder::audio::Source::getNumChannels ( ) const
pure virtual
virtual size_t cinder::audio::Source::getSampleRateNative ( ) const
pure virtual

Returns the true samplerate of the Source.

Note
Actual output samplerate may differ.
See also
getSampleRate()

Implemented in cinder::audio::cocoa::SourceFileCoreAudio, cinder::audio::SourceFileOggVorbis, and cinder::audio::msw::SourceFileMediaFoundation.

size_t cinder::audio::Source::getMaxFramesPerRead ( ) const

Returns the maximum number of frames that can be read with one call to read().

virtual void cinder::audio::Source::setMaxFramesPerRead ( size_t  count)
virtual

Sets the maximum number of frames that can be read in one chunk.

virtual size_t cinder::audio::Source::read ( Buffer buffer)
pure virtual

Loads either as many frames as buffer can hold, or as many as there are left.

Returns
number of frames read into buffer.

Implemented in cinder::audio::SourceFile.

virtual std::string cinder::audio::Source::getMetaData ( ) const
virtual

Returns the metadata, if any, as a string.

Reimplemented in cinder::audio::SourceFileOggVorbis.

virtual size_t cinder::audio::Source::performRead ( Buffer buffer,
size_t  bufferFrameOffset,
size_t  numFramesNeeded 
)
protectedpure virtual

Implement to perform read of frames into buffer starting at offset bufferFrameOffset

Returns
the actual number of frames read.

Implemented in cinder::audio::SourceFileOggVorbis, and cinder::audio::msw::SourceFileMediaFoundation.

virtual bool cinder::audio::Source::supportsConversion ( )
protectedvirtual

Implementations should override and return true if they can provide samplerate conversion. If false (default), a Converter will be used if needed.

void cinder::audio::Source::setSampleRate ( size_t  sampleRate)
protected

Allows implementations to set the output samplerate.

Member Data Documentation

std::unique_ptr<dsp::Converter> cinder::audio::Source::mConverter
protected
BufferDynamic cinder::audio::Source::mConverterReadBuffer
protected

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