Blender  V2.59
Public Member Functions
AUD_SequencerReader Class Reference

#include <AUD_SequencerReader.h>

Inheritance diagram for AUD_SequencerReader:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 AUD_SequencerReader (AUD_SequencerFactory *factory, std::list< AUD_SequencerEntry * > &entries, const AUD_Specs specs, void *data, AUD_volumeFunction volume)
 ~AUD_SequencerReader ()
void destroy ()
void add (AUD_SequencerEntry *entry)
void remove (AUD_SequencerEntry *entry)
virtual bool isSeekable () const
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 50 of file AUD_SequencerReader.h.


Constructor & Destructor Documentation

AUD_SequencerReader::AUD_SequencerReader ( AUD_SequencerFactory factory,
std::list< AUD_SequencerEntry * > &  entries,
const AUD_Specs  specs,
void *  data,
AUD_volumeFunction  volume 
)

Creates a resampling reader.

Parameters:
readerThe reader to mix.
specsThe target specification.

Definition at line 40 of file AUD_SequencerReader.cpp.

References AUD_FORMAT_FLOAT32, AUD_IFactory::createReader(), AUD_SequencerStrip::entry, AUD_DeviceSpecs::format, i, NULL, AUD_SequencerStrip::old_sound, AUD_Mixer::prepare(), AUD_SequencerStrip::reader, and AUD_DeviceSpecs::specs.

AUD_SequencerReader::~AUD_SequencerReader ( )

Destroys the reader.

Definition at line 72 of file AUD_SequencerReader.cpp.

References NULL, AUD_SequencerStrip::reader, and AUD_SequencerFactory::removeReader().


Member Function Documentation

void AUD_SequencerReader::add ( AUD_SequencerEntry entry)
void AUD_SequencerReader::destroy ( )

Definition at line 93 of file AUD_SequencerReader.cpp.

References NULL.

Referenced by AUD_SequencerFactory::~AUD_SequencerFactory().

int AUD_SequencerReader::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

Implements AUD_IReader.

Definition at line 154 of file AUD_SequencerReader.cpp.

int AUD_SequencerReader::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

Implements AUD_IReader.

Definition at line 159 of file AUD_SequencerReader.cpp.

AUD_Specs AUD_SequencerReader::getSpecs ( ) const [virtual]

Returns the specification of the reader.

Returns:
The AUD_Specs structure.

Implements AUD_IReader.

Definition at line 164 of file AUD_SequencerReader.cpp.

References AUD_Mixer::getSpecs(), and AUD_DeviceSpecs::specs.

bool AUD_SequencerReader::isSeekable ( ) const [virtual]

Tells whether the source provides seeking functionality or not.

Warning:
This doesn't mean that the seeking always has to succeed.
Returns:
Always returns true for readers of the buffer type.
See also:
getType

Implements AUD_IReader.

Definition at line 144 of file AUD_SequencerReader.cpp.

void AUD_SequencerReader::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.

Implements AUD_IReader.

Definition at line 169 of file AUD_SequencerReader.cpp.

References AUD_Mixer::add(), AUD_SAMPLE_SIZE, AUD_SequencerEntry::begin, AUD_IFactory::createReader(), AUD_SequencerEntry::data, AUD_SequencerEntry::end, AUD_SequencerStrip::entry, AUD_Buffer::getBuffer(), AUD_SequencerFactory::getMute(), AUD_IReader::getPosition(), AUD_Buffer::getSize(), AUD_Mixer::getSpecs(), i, length(), AUD_SequencerEntry::muted, NULL, AUD_SequencerStrip::old_sound, AUD_Mixer::prepare(), AUD_DeviceSpecs::rate, AUD_IReader::read(), AUD_SequencerStrip::reader, AUD_Buffer::resize(), AUD_IReader::seek(), size(), AUD_SequencerEntry::skip, AUD_SequencerEntry::sound, and AUD_Mixer::superpose().

void AUD_SequencerReader::remove ( AUD_SequencerEntry entry)

Definition at line 124 of file AUD_SequencerReader.cpp.

References AUD_SequencerStrip::entry, i, and AUD_SequencerStrip::reader.

void AUD_SequencerReader::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

Implements AUD_IReader.

Definition at line 149 of file AUD_SequencerReader.cpp.


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