#include "VABinauralClusterEngine.h" // VA includes #include VABinauralClusterEngine::VABinauralClusterEngine() { } VABinauralClusterEngine::~VABinauralClusterEngine() { } void VABinauralClusterEngine::update() { std::map< int, VABinauralClustering* >::iterator it; for (it = _clusterings.begin(); it != _clusterings.end(); ++it) { it->second->update(); } } VABinauralClustering* VABinauralClusterEngine::getClustering(int listenerID) { std::map< int, VABinauralClustering* >::iterator it = _clusterings.find(listenerID); return it->second; } void VABinauralClusterEngine::addSource( int sourceID, VABinauralSoundSource* source ) { std::map< int, VABinauralClustering* >::iterator it; for (it = _clusterings.begin(); it != _clusterings.end(); ++it) { it->second->addSource(sourceID, source); } } void VABinauralClusterEngine::addListener(int listenerID, VABinauralListener* listener, clusterConfig_t& conf) { VABinauralClustering* clustering = dynamic_cast< VABinauralClustering* >(_clusteringPool->RequestObject()); // Reference = 1 clustering->init(listenerID, listener, conf.numCluster); // add local reference _clusterings.insert(std::pair< int, VABinauralClustering* >(listenerID, clustering)); } void VABinauralClusterEngine::removeListener(int listenerID) { std::map< int, VABinauralClustering* >::iterator it = _clusterings.find(listenerID); VABinauralClustering* clustering = it->second; _clusterings.erase(it); clustering->RemoveReference(); /* TODO: foreach cluster in CL delete cluster */ }