MCPcopy Create free account
hub / github.com/ON4QZ/QSSTV / checkSaveImage

Method checkSaveImage

src/drmrx/sourcedecoder.cpp:657–708  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

655
656
657bool sourceDecoder::checkSaveImage(QByteArray ba,transportBlock *tbPtr)
658{
659 prepareFixEvent *pe;
660 QFile outFile;
661 reedSolomonCoder rsd;
662 QString fileName;
663 QString extension;
664 fileName=rxDRMImagesPath+"/"+tbPtr->fileName;
665 tbPtr->newFileName=fileName;
666 QByteArray baFile;
667 QByteArray *baFilePtr;
668
669 if(!checkIt) return false;
670 QFileInfo qfinf(fileName);
671 extension=qfinf.suffix().toLower();
672 if((extension=="rs1") || (extension=="rs2") ||(extension=="rs3")||(extension=="rs4"))
673 {
674 // try to decode
675 addToLog("Try to decode",LOGDRMSRC);
676 if(tbPtr->alreadyReceived) return false;
677 if(!rsd.decode(ba,fileName,tbPtr->newFileName,baFile,extension,erasureList)) return false;
678 baFilePtr=&baFile;
679 }
680 else
681 {
682 addToLog("Check complete",LOGDRMSRC);
683 if(!tbPtr->isComplete()) return false;
684 tbPtr->newFileName=fileName;
685 if((tbPtr->fileName=="bsr.bin")&&(!tbPtr->alreadyReceived))
686 {
687 tbPtr->setAlreadyReceived(true);
688 pe = new prepareFixEvent(ba);
689 QApplication::postEvent(dispatcherPtr, pe);
690 return false;
691 }
692 baFilePtr=&ba;
693 }
694 if(!tbPtr->alreadyReceived)
695 {
696 outFile.setFileName(tbPtr->newFileName);
697 if(outFile.open(QIODevice::WriteOnly)<=0)
698 {
699 outFile.close();
700 return false;
701 }
702 outFile.write(*baFilePtr);
703 outFile.close();
704 erasureList.clear();
705 saveImage(tbPtr);
706 }
707 return false;
708}
709
710QList <bsrBlock> *sourceDecoder::getBSR()
711{

Callers

nothing calls this directly

Calls 7

isCompleteMethod · 0.80
setAlreadyReceivedMethod · 0.80
decodeMethod · 0.45
openMethod · 0.45
closeMethod · 0.45
writeMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected