void SourcesManager::sourceRemove(long anIndex) { if(anIndex < m_sources.size() && anIndex >= 0) { int numberOfGroups = m_sources[anIndex]->getNumberOfGroups(); int indexOfGroup = -1; for(int i = 0; i < numberOfGroups; i++) { indexOfGroup = m_sources[anIndex]->getGroupIndex(i); if(indexOfGroup >= 0 && indexOfGroup < getNumberOfGroups()); m_groups[indexOfGroup]->removeSource(anIndex); } for(int i = 0; i < numberOfGroups; i++) { indexOfGroup = m_sources[anIndex]->getGroupIndex(i); m_sources[anIndex]->removeGroup(indexOfGroup); } m_sources[anIndex]->setExistence(0); m_sources[anIndex]->setDescription(""); m_sources[anIndex]->setColor(0.2, 0.2, 0.2, 1.); m_sources[anIndex]->setCoordinatesCartesian(0., 1.); m_sources[anIndex]->setMute(0); } }
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); } } } }
long SourcesManager::groupGetNextIndex() { if(getNumberOfGroups() != 0) { for(int i = 0; i < getMaximumIndexOfGroup()+2; i++) { if(!groupGetExistence(i)) { return i; } } } return getMaximumIndexOfGroup(); }
void cleanTicketNumbers(LPFIELDSRESULTS lpFieldsResults) { char *resultsStr = lpFieldsResults->result; int numGr, i, k; int iStart, iStop; char strT[10]; int ret; int numLines = 0; int thGroups = 5; int numChars; int beginCut = 0; resultTmp[0] = 0; cand2Tmp[0] = 0; // test every line //printf("\n\n"); //printf(resultsStr); //printf("\n\n"); // get number of lines i = 0; while(1){ if(getLine(resultsStr, i, &iStart, &iStop) < 0) break; numLines++; i++; } // test last lines // printf("--- numLines= %d\n",numLines); k = numLines-1; while(k>0){ if(getLine(resultsStr, k, &iStart, &iStop) < 0) break; if(testLineConf(lpFieldsResults, iStart, iStop) < 0) numLines--; else break; k--; } i = 0; k = 0; while(i < numLines){ if(getLine(resultsStr, i, &iStart, &iStop) < 0) break; testLeftSideForLine(resultsStr, &iStart, iStop); //printLine(resultsStr, iStart, iStop); numGr = getNumberOfGroups(resultsStr, iStart, iStop); beginCut = 0; // printf("--- line i= %d; numGr= %d, iStart= %d, iStop= %d\n",i, numGr, iStart, iStop); numChars = getNumChars(resultsStr, iStart, iStop); //printf("--- line i= %d; numGr= %d, numChars= %d\n",i, numGr, numChars); if(numGr == thGroups){ beginCut = testBeginCut(lpFieldsResults, iStart, iStop); if(beginCut > 0) numGr++; } // printLine(resultsStr, iStart, iStop); // printf("--- line i= %d; numGr= %d, numChars= %d\n",i, numGr, numChars); if(numGr > thGroups && strlen(resultsStr) > 15 && numChars < 20){ copyLine(lpFieldsResults, iStart, iStop); // printLine(resultsStr, iStart, iStop); // printfQuad(); // printf("--- line i= %d; %s\n",i, result); if(beginCut > 0){ // printf("--- line i= %d; beginCut= %d\n",i, beginCut); strT[0] = 'A'+k; strT[1] = 32; strT[2] = 0; replaceChars(0, -1, strT); }else{ getFirstCharFromNumLine(&iStart, &iStop); // printfQuad(); // printf("--- getFirstCharFromNumLine i= %d; iStart= %d, iStop= %d\n",i, iStart, iStop); if(numGr < 8 && iStart == 0 && iStop == 0 && result[1] != 32) { strT[0] = 'A'+k; strT[1] = 32; strT[2] = 0; replaceChars(0, -1, strT); }else{ // printf("--- numGr= %d; iStart= %d, iStop= %d, result[1]= %d\n",numGr, iStart, iStop, result[1]); strT[0] = 'A'+k; strT[1] = 0; replaceChars(iStart, iStop, strT); } } iStop = -1; ret = getFirstQPFromNumLine(&iStart, &iStop); if(ret >= 0) { replaceChars(iStart, iStop, "QP"); } if( ret > 0 || numGr >6) { if(getSecondQPFromNumLine(&iStart, &iStop) >=0){ replaceChars(iStart, iStop, "QP"); } } addLineToTmp(); k++; //printTmp(); } i++; } copyResultsBack(lpFieldsResults); }