Blender  V2.59
Public Member Functions
AUD_SRCResampleReader Class Reference

#include <AUD_SRCResampleReader.h>

Inheritance diagram for AUD_SRCResampleReader:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 AUD_SRCResampleReader (AUD_IReader *reader, AUD_Specs specs)
 ~AUD_SRCResampleReader ()
long doCallback (float **data)
virtual void seek (int position)
virtual int getLength () const
virtual int getPosition () const
virtual AUD_Specs getSpecs () const
virtual void read (int &length, sample_t *&buffer)

Detailed Description

This resampling reader uses libsamplerate for resampling.

Definition at line 43 of file AUD_SRCResampleReader.h.


Constructor & Destructor Documentation

AUD_SRCResampleReader::AUD_SRCResampleReader ( AUD_IReader reader,
AUD_Specs  specs 
)

Creates a resampling reader.

Parameters:
readerThe reader to mix.
specsThe target specification.
Exceptions:
AUD_ExceptionThrown if the source specification cannot be resampled to the target specification.

Definition at line 46 of file AUD_SRCResampleReader.cpp.

References AUD_ERROR_SRC, AUD_THROW, AUD_Specs::channels, error(), src_callback(), and state_error.

AUD_SRCResampleReader::~AUD_SRCResampleReader ( )

Destroys the reader.

Definition at line 70 of file AUD_SRCResampleReader.cpp.


Member Function Documentation

long AUD_SRCResampleReader::doCallback ( float **  data)

The callback function for SRC.

Warning:
Do not call!
Parameters:
dataThe pointer to the float data.
Returns:
The count of samples in the float data.

Definition at line 75 of file AUD_SRCResampleReader.cpp.

References AUD_SAMPLE_SIZE, AUD_Buffer::getSize(), length(), AUD_EffectReader::m_reader, and AUD_IReader::read().

int AUD_SRCResampleReader::getLength ( ) const [virtual]

Returns an approximated length of the source in samples. For readers of the type buffer this has to return a correct value!

Returns:
The length as sample count. May be negative if unknown.
See also:
getType

Reimplemented from AUD_EffectReader.

Definition at line 93 of file AUD_SRCResampleReader.cpp.

References AUD_IReader::getLength(), and AUD_EffectReader::m_reader.

int AUD_SRCResampleReader::getPosition ( ) const [virtual]

Returns the position of the source as a sample count value.

Returns:
The current position in the source. A negative value indicates that the position is unknown.
Warning:
The value returned doesn't always have to be correct for readers of the stream type, especially after seeking, it must though for the buffer ones.
See also:
getType

Reimplemented from AUD_EffectReader.

Definition at line 98 of file AUD_SRCResampleReader.cpp.

AUD_Specs AUD_SRCResampleReader::getSpecs ( ) const [virtual]

Returns the specification of the reader.

Returns:
The AUD_Specs structure.

Reimplemented from AUD_EffectReader.

Definition at line 103 of file AUD_SRCResampleReader.cpp.

void AUD_SRCResampleReader::read ( int &  length,
sample_t *&  buffer 
) [virtual]

Request to read the next length samples out of the source. The buffer for reading has to stay valid until the next call of this method or until the reader is deleted.

Parameters:
[in,out]lengthThe count of samples that should be read. Shall contain the real count of samples after reading, in case there were only fewer samples available. A smaller value also indicates the end of the reader.
[out]bufferThe pointer to the buffer with the samples.

Reimplemented from AUD_EffectReader.

Definition at line 108 of file AUD_SRCResampleReader.cpp.

References AUD_SAMPLE_SIZE, AUD_Buffer::getBuffer(), AUD_Buffer::getSize(), length(), AUD_Buffer::resize(), and size().

void AUD_SRCResampleReader::seek ( int  position) [virtual]

Seeks to a specific position in the source. This function must work for buffer type readers.

Parameters:
positionThe position to seek for measured in samples. To get from a given time to the samples you simply have to multiply the time value in seconds with the sample rate of the reader.
Warning:
This may work or not, depending on the actual reader.
See also:
getType

Reimplemented from AUD_EffectReader.

Definition at line 86 of file AUD_SRCResampleReader.cpp.

References AUD_EffectReader::m_reader, and AUD_IReader::seek().


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