This class represents a reader for a sound that can sound different depending on its realtive position with the listener.
More...
#include <BinauralReader.h>
|
| BinauralReader (std::shared_ptr< IReader > reader, std::shared_ptr< HRTF > hrtfs, std::shared_ptr< Source > source, std::shared_ptr< ThreadPool > threadPool, std::shared_ptr< FFTPlan > plan) |
| Creates a new convolver reader.
|
|
virtual bool | isSeekable () const |
| Tells whether the source provides seeking functionality or not.
|
|
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.
|
|
virtual | ~IReader () |
| Destroys the reader.
|
|
This class represents a reader for a sound that can sound different depending on its realtive position with the listener.
◆ BinauralReader()
BinauralReader::BinauralReader |
( |
std::shared_ptr< IReader > | reader, |
|
|
std::shared_ptr< HRTF > | hrtfs, |
|
|
std::shared_ptr< Source > | source, |
|
|
std::shared_ptr< ThreadPool > | threadPool, |
|
|
std::shared_ptr< FFTPlan > | plan ) |
Creates a new convolver reader.
- Parameters
-
reader | A reader of the input sound to be assigned to this reader. It must have one channel. |
hrtfs | A shared pointer to an HRTF object that will be used to get a particular impulse response depending on the source. |
source | A shared pointer to a Source object that will be used to change the source position of the sound. |
threadPool | A shared pointer to a ThreadPool object with 1 or more threads. |
plan | A shared pointer to and FFT plan that will be used for convolution. |
- Exceptions
-
Exception | thrown if the specs of the HRTFs and the sound don't match or if the provided HRTF object is empty. |
◆ getLength()
virtual int BinauralReader::getLength |
( |
| ) |
const |
|
virtual |
Returns an approximated length of the source in samples.
- Returns
- The length as sample count. May be negative if unknown.
Implements IReader.
◆ getPosition()
virtual int BinauralReader::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.
Implements IReader.
◆ getSpecs()
virtual Specs BinauralReader::getSpecs |
( |
| ) |
const |
|
virtual |
Returns the specification of the reader.
- Returns
- The Specs structure.
Implements IReader.
◆ isSeekable()
virtual bool BinauralReader::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 buffering types.
Implements IReader.
◆ read()
virtual void BinauralReader::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] | length | The 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] | eos | End of stream, whether the end is reached or not. |
[in] | buffer | The pointer to the buffer to read into. |
Implements IReader.
◆ seek()
virtual void BinauralReader::seek |
( |
int | position | ) |
|
|
virtual |
Seeks to a specific position in the source.
- Parameters
-
position | The 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.
Implements IReader.
The documentation for this class was generated from the following file: