31#include <unordered_map>
45 std::unordered_map<float, std::unordered_map<float, std::shared_ptr<ImpulseResponse>>> m_hrtfs;
50 std::shared_ptr<FFTPlan> m_plan;
64 HRTF& operator=(
const HRTF&) =
delete;
76 HRTF(std::shared_ptr<FFTPlan> plan);
85 bool addImpulseResponse(std::shared_ptr<StreamBuffer> impulseResponse,
float azimuth,
float elevation);
93 std::pair<std::shared_ptr<ImpulseResponse>, std::shared_ptr<ImpulseResponse>>
getImpulseResponse(
float &azimuth,
float &elevation);
#define AUD_NAMESPACE_END
Closes the audaspace namespace aud.
Definition Audaspace.h:119
#define AUD_NAMESPACE_BEGIN
Opens the audaspace namespace aud.
Definition Audaspace.h:116
#define AUD_API
Used for exporting symbols in the shared library.
Definition Audaspace.h:93
The ImpulseResponse class.
This class represents a complete set of HRTFs.
Definition HRTF.h:40
bool isEmpty()
Retrieves the state of the HRTF object.
bool addImpulseResponse(std::shared_ptr< StreamBuffer > impulseResponse, float azimuth, float elevation)
Adds a new HRTF to the class.
HRTF()
Creates a new empty HRTF object that will instance it own FFTPlan with default size.
Specs getSpecs()
Retrieves the specs shared by all the HRTFs.
HRTF(std::shared_ptr< FFTPlan > plan)
Creates a new empty HRTF object.
std::pair< std::shared_ptr< ImpulseResponse >, std::shared_ptr< ImpulseResponse > > getImpulseResponse(float &azimuth, float &elevation)
Retrieves a pair of HRTFs for a certain azimuth and elevation.
Specification of a sound source.
Definition Specification.h:119