#ifndef IW_VACORE_BINAURALLISTENER #define IW_VACORE_BINAURALLISTENER // VA includes #include #include #include "../../../../../VACoreImpl.h" #include "../../../../../Motion/VAMotionModelBase.h" #include "../../../../../Motion/VASharedMotionModel.h" #include "../../../../../Scene/VAScene.h" // ITA includes #include // Utils #include "../BinauralTimeOfArrivalEstimator/VABinauralTOAEstimator.h" class VABinauralListener : public CVAPoolObject { public: struct config_t { bool motionModelLogInput; bool motionModelLogEstimated; double motionModelWindowSize; double motionModelWindowDelay; int motionModelNumHistoryKeys; }; CVAListenerDesc* data; CVASharedMotionModel* motionModel; VAVec3 predPos; VAVec3 prefView; VAVec3 predUp; ITASampleFrame* output; VABinauralTOAEstimator* toaEstimator; VABinauralListener(const CVACoreImpl* core, const config_t& conf); virtual ~VABinauralListener(); void PreRequest(); void PreRelease(); private: const config_t _conf; const CVACoreImpl* _core; double _dCreationTimeStamp; }; #endif // IW_VACORE_BINAURALLISTENER