Cinder  0.9.1
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
cinder::audio::msw::SourceFileMediaFoundation Class Reference

#include <FileMediaFoundation.h>

Inherits cinder::audio::SourceFile.

Public Member Functions

 SourceFileMediaFoundation ()
 
 SourceFileMediaFoundation (const DataSourceRef &dataSource, size_t sampleRate)
 
virtual ~SourceFileMediaFoundation ()
 
SourceFileRef cloneWithSampleRate (size_t sampleRate) const override
 
size_t getNumChannels () const override
 
size_t getSampleRateNative () const override
 
size_t performRead (Buffer *buffer, size_t bufferFrameOffset, size_t numFramesNeeded) override
 
void performSeek (size_t readPositionFrames) override
 
size_t read (Buffer *buffer) override
 
SourceFileRef clone () const
 
BufferRef loadBuffer ()
 
void seek (size_t readPositionFrames)
 
void seekToTime (double readPositionSeconds)
 
size_t getReadPosition () const
 
double getReadPositionSeconds () const
 
size_t getNumFrames () const
 
double getNumSeconds () const
 
size_t getSampleRate () const
 
size_t getMaxFramesPerRead () const
 
virtual void setMaxFramesPerRead (size_t count)
 
virtual std::string getMetaData () const
 

Static Public Member Functions

static std::vector< std::string > getSupportedExtensions ()
 
static std::unique_ptr< SourceFilecreate (const DataSourceRef &dataSource, size_t sampleRate=0)
 

Protected Member Functions

virtual void setupSampleRateConversion ()
 
virtual bool supportsConversion ()
 
void setSampleRate (size_t sampleRate)
 

Protected Attributes

size_t mNumFrames
 
size_t mFileNumFrames
 
size_t mReadPos
 
std::unique_ptr< dsp::ConvertermConverter
 
BufferDynamic mConverterReadBuffer
 

Constructor & Destructor Documentation

cinder::audio::msw::SourceFileMediaFoundation::SourceFileMediaFoundation ( )
cinder::audio::msw::SourceFileMediaFoundation::SourceFileMediaFoundation ( const DataSourceRef dataSource,
size_t  sampleRate 
)
cinder::audio::msw::SourceFileMediaFoundation::~SourceFileMediaFoundation ( )
virtual

Member Function Documentation

SourceFileRef cinder::audio::msw::SourceFileMediaFoundation::cloneWithSampleRate ( size_t  sampleRate) const
overridevirtual

Returns an copy of this Source with all properties identical except the sampleRate. This is useful if the SourceFile must match a samplerate that was unknown when it was first constructed.

Implements cinder::audio::SourceFile.

size_t cinder::audio::msw::SourceFileMediaFoundation::getNumChannels ( ) const
overridevirtual

Returns the number of channels.

Implements cinder::audio::Source.

size_t cinder::audio::msw::SourceFileMediaFoundation::getSampleRateNative ( ) const
overridevirtual

Returns the true samplerate of the Source.

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

Implements cinder::audio::Source.

size_t cinder::audio::msw::SourceFileMediaFoundation::performRead ( Buffer buffer,
size_t  bufferFrameOffset,
size_t  numFramesNeeded 
)
overridevirtual

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

Returns
the actual number of frames read.

Implements cinder::audio::Source.

void cinder::audio::msw::SourceFileMediaFoundation::performSeek ( size_t  readPositionFrames)
overridevirtual

Implement to perform seek. readPositionFrames is in native file units.

Implements cinder::audio::SourceFile.

vector< std::string > cinder::audio::msw::SourceFileMediaFoundation::getSupportedExtensions ( )
static
unique_ptr< SourceFile > cinder::audio::SourceFile::create ( const DataSourceRef dataSource,
size_t  sampleRate = 0 
)
staticinherited

Creates a new SourceFile from dataSource, with optional output samplerate. If sampleRate equals 0 the native file's samplerate is used.

size_t cinder::audio::SourceFile::read ( Buffer buffer)
overridevirtualinherited

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

Returns
number of frames read into buffer.

Implements cinder::audio::Source.

SourceFileRef cinder::audio::SourceFile::clone ( ) const
inherited

Returns a copy of this Source, with identical properties and pointing at the same data source.

BufferRef cinder::audio::SourceFile::loadBuffer ( )
inherited

Loads and returns the entire contents of this SourceFile.

Returns
a BufferRef containing the file contents.
void cinder::audio::SourceFile::seek ( size_t  readPositionFrames)
inherited

Seek the read position to readPositionFrames.

void cinder::audio::SourceFile::seekToTime ( double  readPositionSeconds)
inherited

Seek to read position readPositionSeconds.

size_t cinder::audio::SourceFile::getReadPosition ( ) const
inherited

Returns the current read position in frames.

double cinder::audio::SourceFile::getReadPositionSeconds ( ) const
inherited

Returns the current read position in seconds.

size_t cinder::audio::SourceFile::getNumFrames ( ) const
inherited

Returns the length in frames.

double cinder::audio::SourceFile::getNumSeconds ( ) const
inherited

Returns the length in seconds.

void cinder::audio::SourceFile::setupSampleRateConversion ( )
protectedvirtualinherited

Sets up samplerate conversion if needed. Can be overridden by implementation if they handle samplerate conversion in a specific way, else it is handled generically with a dsp::Converter.

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

Returns the user facing samplerate (output).

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

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

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

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

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

Returns the metadata, if any, as a string.

Reimplemented in cinder::audio::SourceFileOggVorbis.

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

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

Allows implementations to set the output samplerate.

Member Data Documentation

size_t cinder::audio::SourceFile::mNumFrames
protectedinherited
size_t cinder::audio::SourceFile::mFileNumFrames
protectedinherited
size_t cinder::audio::SourceFile::mReadPos
protectedinherited
std::unique_ptr<dsp::Converter> cinder::audio::Source::mConverter
protectedinherited
BufferDynamic cinder::audio::Source::mConverterReadBuffer
protectedinherited

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