| 655 | |
| 656 | |
| 657 | bool 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 | |
| 710 | QList <bsrBlock> *sourceDecoder::getBSR() |
| 711 | { |
nothing calls this directly
no test coverage detected