VABinauralSoundSource.h 1 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11
#ifndef IW_VACORE_BINAURALSOUNDSOURCE
#define IW_VACORE_BINAURALSOUNDSOURCE

// VA includes
#include <VA.h>
#include <VAPoolObject.h>

#include "../../../../../Motion/VAMotionModelBase.h"
#include "../../../../../Motion/VASharedMotionModel.h"
#include "../../../../../Scene/VAScene.h"

Lucas Moesch's avatar
WIP  
Lucas Moesch committed
12 13 14
// ITA includes
#include <ITAVariableDelayLine.h>

15 16 17 18 19 20 21 22 23 24 25
class VABinauralSoundSource : public CVAPoolObject
{
public:
	struct config_t {
		bool motionModelLogInput;
		bool motionModelLogEstimated;

		double motionModelWindowSize;
		double motionModelWindowDelay;

		int motionModelNumHistoryKeys;
Lucas Moesch's avatar
WIP  
Lucas Moesch committed
26 27 28

		double sampleRate;
		int blockLength;
29 30
	};

31 32
	const config_t conf;

33 34
	CVASoundSourceDesc* data;
	CVASharedMotionModel* motionModel;
Lucas Moesch's avatar
WIP  
Lucas Moesch committed
35 36
	CITAVariableDelayLine* vdlChL;
	CITAVariableDelayLine* vdlChR;
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56

	VAVec3 predPos;
	VAVec3 prefView;
	VAVec3 predUp;

	VABinauralSoundSource(const config_t& conf);
	~VABinauralSoundSource();

	void
	PreRequest();

	void
	PreRelease();

private:

	double _dCreationTimeStamp;
};

#endif // IW_VACORE_BINAURALSOUNDSOURCE