void SourcesManager::groupClean() { for(int i = 0; i <= getNumberOfGroups(); i++) { if(groupGetExistence(i)) { for(int j = 0; j <= getNumberOfGroups(); j++) { if (i != j && groupGetExistence(j)) { if(groupGetNumberOfSources(i) == groupGetNumberOfSources(j)) { int check = 0; for(int k = 0; k < groupGetNumberOfSources(i); k++) { for(int l = 0; l < groupGetNumberOfSources(i); l++) { if(groupGetSourceIndex(i, k) == groupGetSourceIndex(j, l)) check++; } } if(check == groupGetNumberOfSources(j)) groupRemove(j); } } } } } for(int i = 0; i < getNumberOfGroups(); i++) { if(groupGetExistence(i)) { if(groupGetNumberOfSources(i) < 2) { groupRemove(i); } } } }
bool SourcesManager::groupGetIfSourceMuted(long index) { if(index < m_groups.size() && index >= 0) { for(long i = 0; i < groupGetNumberOfSources(index); i++) { if(sourceGetMute(groupGetSourceIndex(index, i))) { return true; } } } return false; }
void SourcesManager::copyTo(SourcesManager* sourcesManagerDestination) { double* color; sourcesManagerDestination->setExistence(0); if(getExistence() == 1) { sourcesManagerDestination->setExistence(1); sourcesManagerDestination->setMaximumRadius(getLimitMaximum()); for(long i = 0; i <= getMaximumIndexOfSource(); i++) { if(sourceGetExistence(i) == 1) { color = sourceGetColor(i); sourcesManagerDestination->sourceSetRadius(i, sourceGetRadius(i)); sourcesManagerDestination->sourceSetAzimuth(i, sourceGetAzimuth(i)); sourcesManagerDestination->sourceSetElevation(i, sourceGetElevation(i)); sourcesManagerDestination->sourceSetColor(i, color[0], color[1], color[2], color[3]); sourcesManagerDestination->sourceSetDescription(i, sourceGetDescription(i)); sourcesManagerDestination->sourceSetMute(i, sourceGetMute(i)); } } for(long i = 0; i <= getMaximumIndexOfGroup(); i++) { if(groupGetExistence(i) == 1) { for(long j = 0; j < groupGetNumberOfSources(i); j++) { sourcesManagerDestination->groupSetSource(i, groupGetSourceIndex(i, j)); } color = groupGetColor(i); sourcesManagerDestination->groupSetColor(i, color[0], color[1], color[2], color[3]); sourcesManagerDestination->groupSetDescription(i, groupGetDescription(i)); } } } }