void AnalyzeTask::run_ex(void) { int fileType = fileTypeNormal; QString currentFile = QDir::fromNativeSeparators(m_inputFile); qDebug("Analyzing: %s", MUTILS_UTF8(currentFile)); AudioFileModel file = analyzeFile(currentFile, &fileType); if(*m_abortFlag) { qWarning("Operation cancelled by user!"); return; } switch(fileType) { case fileTypeDenied: qWarning("Cannot access file for reading, skipping!"); break; case fileTypeCDDA: qWarning("Dummy CDDA file detected, skipping!"); break; default: if(file.metaInfo().title().isEmpty() || file.techInfo().containerType().isEmpty() || file.techInfo().audioType().isEmpty()) { fileType = fileTypeUnknown; if(!QFileInfo(currentFile).suffix().compare("cue", Qt::CaseInsensitive)) { qWarning("Cue Sheet file detected, skipping!"); fileType = fileTypeCueSheet; } else if(!QFileInfo(currentFile).suffix().compare("avs", Qt::CaseInsensitive)) { qDebug("Found a potential Avisynth script, investigating..."); if(analyzeAvisynthFile(currentFile, file)) { fileType = fileTypeNormal; } else { qDebug("Rejected Avisynth file: %s", MUTILS_UTF8(file.filePath())); } } else { qDebug("Rejected file of unknown type: %s", MUTILS_UTF8(file.filePath())); } } break; } //Emit the file now! emit fileAnalyzed(m_taskId, fileType, file); }
void FileListModel::addFile(const AudioFileModel &file) { const QString key = MAKE_KEY(file.filePath()); const bool flag = (!m_blockUpdates); if(!m_fileStore.contains(key)) { if(flag) beginInsertRows(QModelIndex(), m_fileList.count(), m_fileList.count()); m_fileStore.insert(key, file); m_fileList.append(key); if(flag) endInsertRows(); emit rowAppended(); } }
bool FileListModel::setFile(const QModelIndex &index, const AudioFileModel &audioFile) { if(index.row() >= 0 && index.row() < m_fileList.count()) { const QString oldKey = m_fileList.at(index.row()); const QString newKey = MAKE_KEY(audioFile.filePath()); beginResetModel(); m_fileList.replace(index.row(), newKey); m_fileStore.remove(oldKey); m_fileStore.insert(newKey, audioFile); endResetModel(); return true; } else { return false; } }
int MetaInfoDialog::exec(AudioFileModel &audioFile, bool allowUp, bool allowDown) { MetaInfoModel *model = new MetaInfoModel(&audioFile); tableView->setModel(model); tableView->show(); frameArtwork->hide(); setWindowTitle(tr("Meta Information: %1").arg(QFileInfo(audioFile.filePath()).fileName())); editButton->setEnabled(true); upButton->setEnabled(allowUp); downButton->setEnabled(allowDown); buttonArtwork->setChecked(false); if(!audioFile.fileCover().isEmpty()) { QImage artwork; if(artwork.load(audioFile.fileCover())) { if((artwork.width() > 256) || (artwork.height() > 256)) { artwork = artwork.scaled(256, 256, Qt::KeepAspectRatio, Qt::SmoothTransformation); } labelArtwork->setPixmap(QPixmap::fromImage(artwork)); } else { qWarning("Error: Failed to load cover art!"); labelArtwork->setPixmap(QPixmap::fromImage(QImage(":/images/CD.png"))); } } else { labelArtwork->setPixmap(QPixmap::fromImage(QImage(":/images/CD.png"))); } int iResult = QDialog::exec(); tableView->setModel(NULL); LAMEXP_DELETE(model); return iResult; }