Audaspace 1.5.0
A high level audio library.
Loading...
Searching...
No Matches
Public Member Functions | List of all members
LinearResampleReader Class Reference

This resampling reader does simple first-order hold resampling. More...

#include <LinearResampleReader.h>

Inheritance diagram for LinearResampleReader:
Inheritance graph
[legend]

Public Member Functions

 LinearResampleReader (std::shared_ptr< IReader > reader, SampleRate rate)
 Creates a resampling reader.
 
virtual void seek (int position)
 Seeks to a specific position in the source.
 
virtual int getLength () const
 Returns an approximated length of the source in samples.
 
virtual int getPosition () const
 Returns the position of the source as a sample count value.
 
virtual Specs getSpecs () const
 Returns the specification of the reader.
 
virtual void read (int &length, bool &eos, sample_t *buffer)
 Request to read the next length samples out of the source.
 
- Public Member Functions inherited from ResampleReader
virtual void setRate (SampleRate rate)
 Sets the sample rate.
 
virtual SampleRate getRate ()
 Retrieves the sample rate.
 
- Public Member Functions inherited from EffectReader
 EffectReader (std::shared_ptr< IReader > reader)
 Creates a new effect reader.
 
virtual ~EffectReader ()
 Destroys the reader.
 
virtual bool isSeekable () const
 Tells whether the source provides seeking functionality or not.
 
- Public Member Functions inherited from IReader
virtual ~IReader ()
 Destroys the reader.
 

Additional Inherited Members

- Protected Member Functions inherited from ResampleReader
 ResampleReader (std::shared_ptr< IReader > reader, SampleRate rate)
 Creates a resampling reader.
 
- Protected Attributes inherited from ResampleReader
SampleRate m_rate
 The target sampling rate.
 
- Protected Attributes inherited from EffectReader
std::shared_ptr< IReaderm_reader
 The reader to read from.
 

Detailed Description

This resampling reader does simple first-order hold resampling.

Constructor & Destructor Documentation

◆ LinearResampleReader()

LinearResampleReader::LinearResampleReader ( std::shared_ptr< IReader > reader,
SampleRate rate )

Creates a resampling reader.

Parameters
readerThe reader to mix.
rateThe target sampling rate.

Member Function Documentation

◆ getLength()

virtual int LinearResampleReader::getLength ( ) const
virtual

Returns an approximated length of the source in samples.

Returns
The length as sample count. May be negative if unknown.

Reimplemented from EffectReader.

◆ getPosition()

virtual int LinearResampleReader::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, especially after seeking.

Reimplemented from EffectReader.

◆ getSpecs()

virtual Specs LinearResampleReader::getSpecs ( ) const
virtual

Returns the specification of the reader.

Returns
The Specs structure.

Reimplemented from EffectReader.

◆ read()

virtual void LinearResampleReader::read ( int & length,
bool & eos,
sample_t * buffer )
virtual

Request to read the next length samples out of the source.

The buffer supplied has the needed size.

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]eosEnd of stream, whether the end is reached or not.
[in]bufferThe pointer to the buffer to read into.

Reimplemented from EffectReader.

◆ seek()

virtual void LinearResampleReader::seek ( int position)
virtual

Seeks to a specific position in the source.

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.

Reimplemented from EffectReader.


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