void DownloadJob::onUrlRetrieved( const QVariantMap& data ) { tDebug() << Q_FUNC_INFO << data; QUrl localFile = prepareFilename(); if ( m_file ) { tLog() << "Recovering from failed download for track:" << toString() << "-" << m_retries << "retries so far."; m_finished = false; delete m_file; m_file = 0; } tLog() << "Saving download" << m_format.url << "to file:" << localFile << localFile.toLocalFile(); m_file = new QFile( localFile.toString() ); m_localFile = localFile.toString(); if ( m_tryResuming && checkForResumedFile() ) return; m_reply = Tomahawk::Utils::nam()->get( QNetworkRequest( data[ "url" ].toString() ) ); connect( m_reply, SIGNAL( error( QNetworkReply::NetworkError ) ), SLOT( onDownloadError( QNetworkReply::NetworkError ) ) ); connect( m_reply, SIGNAL( downloadProgress( qint64, qint64 ) ), SLOT( onDownloadProgress( qint64, qint64 ) ) ); connect( m_reply, SIGNAL( finished() ), SLOT( onDownloadNetworkFinished() ) ); setState( Running ); }
bool DownloadJob::checkForResumedFile() { tLog() << Q_FUNC_INFO; if ( !m_tryResuming ) return false; QUrl localFile = prepareFilename(); QFileInfo fi( localFile.toString() ); tLog() << Q_FUNC_INFO << m_fileSize << fi.size(); if ( fi.size() > 0 && fi.exists() && fi.size() == m_fileSize ) { tLog() << Q_FUNC_INFO << "Detected previously finished download."; m_rcvdSize = fi.size(); m_finished = true; onDownloadFinished(); return true; } return false; }
// Load script from file // Script is first read into memory buffer and then line beginning with "#!" (line with script interpreter specification in // Linux) is converted into Squirrel comment. This line must be BEFORE actual script text static bool LoadScript (const char* fileName) { bool res = false; FILE* file = NULL; SQChar* buf = NULL; // RVF + std::string canonicalizedFilename = prepareFilename(fileName); fileName = canonicalizedFilename.c_str(); // RVF - try { #if defined(_MSC_VER) && (_MSC_VER >= 1400) if (fopen_s(&file, ConvPath(fileName, SQTrue), "rb")) file = NULL; #else file = fopen(ConvPath(fileName, SQTrue), "rb"); #endif if (!file) throw "Failed to open the file"; fseek(file, 0, SEEK_END); SQInteger size = SQInteger(ftell(file)); if (!size) throw "File is empty"; buf = (SQChar*)malloc(size + 1); if (!buf) throw "Not enough memory for script"; fseek(file, 0, SEEK_SET); if (!fread(buf, size, 1, file)) throw "Failed to read script"; buf[size - 1] = 0; for (SQChar* c = buf; *c; ++c) { if (!isspace(*c)) { if ((c[0] == '#') && (c[1] == '!')) c[0] = c[1] = '/'; break; } } if (SQ_FAILED(sq_compilebuffer(sqvm, buf, size, fileName, SQTrue))) throw "Failed to compile script"; res = true; } catch (const char* errMsg) { PrintError("ERROR: %s: %s.\n", fileName, errMsg); } if (file) fclose(file); free(buf); return res; }
void QmitkToFRecorderWidget::OnStartRecorder() { m_Controls->m_StartRecordingButton->setChecked(true); m_Controls->m_RecorderGroupBox->setEnabled(false); this->repaint(); int numOfFrames = m_Controls->m_NumOfFramesSpinBox->value(); try { bool fileOK = true; bool distanceImageSelected = true; bool amplitudeImageSelected = false; bool intensityImageSelected = false; bool rgbImageSelected = false; bool rawDataSelected = false; //Set check boxes in dialog according to device properties m_ToFImageGrabber->GetCameraDevice()->GetBoolProperty("HasAmplitudeImage",amplitudeImageSelected); m_ToFImageGrabber->GetCameraDevice()->GetBoolProperty("HasIntensityImage",intensityImageSelected); m_ToFImageGrabber->GetCameraDevice()->GetBoolProperty("HasRGBImage",rgbImageSelected); QString tmpFileName(""); QString selectedFilter(""); QString imageFileName(""); mitk::ToFImageWriter::ToFImageType tofImageType; tmpFileName = QmitkToFRecorderWidget::getSaveFileName(tofImageType, distanceImageSelected, amplitudeImageSelected, intensityImageSelected, rgbImageSelected, rawDataSelected, NULL, "Save Image To...", imageFileName, "NRRD Images (*.nrrd);;PIC Images - deprecated (*.pic);;Text (*.csv)", &selectedFilter); if (tmpFileName.isEmpty()) { fileOK = false; } else { imageFileName = tmpFileName; } if (fileOK) { std::string dir = itksys::SystemTools::GetFilenamePath( imageFileName.toStdString() ); std::string baseFilename = itksys::SystemTools::GetFilenameWithoutLastExtension( imageFileName.toStdString() ); std::string extension = itksys::SystemTools::GetFilenameLastExtension( imageFileName.toStdString() ); int integrationTime = this->m_ToFImageGrabber->GetIntegrationTime(); int modulationFreq = this->m_ToFImageGrabber->GetModulationFrequency(); QString integrationTimeStr; integrationTimeStr.setNum(integrationTime); QString modulationFreqStr; modulationFreqStr.setNum(modulationFreq); QString numOfFramesStr(""); if (this->m_RecordMode == mitk::ToFImageRecorder::PerFrames) { numOfFramesStr.setNum(numOfFrames); } std::string distImageFileName = prepareFilename(dir, baseFilename, modulationFreqStr.toStdString(), integrationTimeStr.toStdString(), numOfFramesStr.toStdString(), extension, "_DistanceImage"); MITK_INFO << "Save distance data to: " << distImageFileName; std::string amplImageFileName = prepareFilename(dir, baseFilename, modulationFreqStr.toStdString(), integrationTimeStr.toStdString(), numOfFramesStr.toStdString(), extension, "_AmplitudeImage"); MITK_INFO << "Save amplitude data to: " << amplImageFileName; std::string intenImageFileName = prepareFilename(dir, baseFilename, modulationFreqStr.toStdString(), integrationTimeStr.toStdString(), numOfFramesStr.toStdString(), extension, "_IntensityImage"); MITK_INFO << "Save intensity data to: " << intenImageFileName; std::string rgbImageFileName = prepareFilename(dir, baseFilename, modulationFreqStr.toStdString(), integrationTimeStr.toStdString(), numOfFramesStr.toStdString(), extension, "_RGBImage"); MITK_INFO << "Save intensity data to: " << rgbImageFileName; if (selectedFilter.compare("Text (*.csv)") == 0) { this->m_ToFImageRecorder->SetFileFormat(".csv"); } else if (selectedFilter.compare("PIC Images - deprecated (*.pic)") == 0) { //default this->m_ToFImageRecorder->SetFileFormat(".pic"); QMessageBox::warning(NULL, "Deprecated File Format!", "Please note that *.pic file format is deprecated and not longer supported! The suggested file format for images is *.nrrd!"); } else if (selectedFilter.compare("NRRD Images (*.nrrd)") == 0) { this->m_ToFImageRecorder->SetFileFormat(".nrrd"); } else { QMessageBox::warning(NULL, "Unsupported file format!", "Please specify one of the supported file formats *.nrrd, *.csv!"); return; } numOfFrames = m_Controls->m_NumOfFramesSpinBox->value(); this->m_ToFImageRecorder->SetDistanceImageFileName(distImageFileName); this->m_ToFImageRecorder->SetAmplitudeImageFileName(amplImageFileName); this->m_ToFImageRecorder->SetIntensityImageFileName(intenImageFileName); this->m_ToFImageRecorder->SetRGBImageFileName(rgbImageFileName); this->m_ToFImageRecorder->SetToFImageType(tofImageType); this->m_ToFImageRecorder->SetDistanceImageSelected(distanceImageSelected); this->m_ToFImageRecorder->SetAmplitudeImageSelected(amplitudeImageSelected); this->m_ToFImageRecorder->SetIntensityImageSelected(intensityImageSelected); this->m_ToFImageRecorder->SetRGBImageSelected(rgbImageSelected); this->m_ToFImageRecorder->SetRecordMode(this->m_RecordMode); this->m_ToFImageRecorder->SetNumOfFrames(numOfFrames); emit RecordingStarted(); this->m_ToFImageRecorder->StartRecording(); } else { this->OnRecordingStopped(); } } catch(std::exception& e) { QMessageBox::critical(NULL, "Error", QString(e.what())); this->OnRecordingStopped(); } }