#ifndef IW_VACORE_BINAURALCLUSTERINGSTATE #define IW_VACORE_BINAURALCLUSTERINGSTATE #include // VA Includes #include #include // ITA includes #include // Utils #include "VABinauralCluster.h" #include "../BinauralSoundSource/VABinauralSoundSource.h" #include "../BinauralListener/VABinauralListener.h" class VABinauralClusteringState { public: int numClusters; std::queue< int > freeClusterIDs; std::map< int, int> sourceClusterReference; std::map< int, VABinauralCluster* > clusters; VABinauralListener* listener; VABinauralClusteringState(int numClusters, VABinauralListener* listener, IVAObjectPool* clusterPool, std::map* FIRConvolverCHL, std::map* FIRConvolverCHR); VABinauralClusteringState(const VABinauralClusteringState& state); ~VABinauralClusteringState(); void addSource(int sourceID, VABinauralSoundSource* source, double threshold, int numBlockedClusters); void removeSource(int sourceID); std::pair< int, VABinauralCluster*> createCluster(int sourceID, VABinauralSoundSource* source); std::pair< int, VABinauralCluster*> createCluster(int clusterID, VABinauralCluster* cluster); double getMaxError(); private: std::map* _FIRConvolverChL; std::map* _FIRConvolverChR; IVAObjectPool* _clusterPool; }; #endif // IW_VACORE_BINAURALCLUSTERINGSTATE