void ViNoiseBatcher::printFileData(ViClassificationErrorCollection &errors, const qint64 &time) { int i; QString filepath = ""; for(i = 0; i < mSummaryFiles.size(); ++i) { if(mSummaryFiles[i].contains(genre(mSummaryFiles[i]))) { filepath = mSummaryFiles[i]; break; } } if(filepath == "") return; QFile file(filepath); file.open(QIODevice::WriteOnly | QIODevice::Append); QTextStream stream(&file); for(i = 0; i < mParamsStart.size(); ++i) { if((int) mParamsCurrent[i] == mParamsCurrent[i]) stream << (int) mParamsCurrent[i] << "\t"; else stream << mParamsCurrent[i] << "\t"; } stream << errors.TP() << "\t" << errors.TN() << "\t" << errors.FP() << "\t" << errors.FN() << "\t" << errors.sensitivity() << "\t" << errors.specificity() << "\t" << errors.matthewsCoefficient() << "\t" << time << "\t\t"; stream << errors.at(0).TN() << "\t" << errors.at(0).FP() << "\t" << errors.at(0).specificity() << "\t"; for(i = ViNoiseCreator::minimumNoiseSize(); i <= ViNoiseCreator::maximumNoiseSize(); ++i) stream << errors.at(i).TP() << "\t" << errors.at(i).FN() << "\t" << errors.at(i).sensitivity() << "\t"; stream << "\n"; stream.flush(); }
void Livre::sauvegarde(QXmlStreamWriter & stream) { stream.writeStartElement ("media"); stream.writeTextElement ("nom", nom ()); if(!cycle ().isEmpty ()) { stream.writeStartElement ("cycle"); stream.writeAttribute ("tome", QString::number (numeroTome ())); stream.writeCharacters (cycle()); stream.writeEndElement (); } stream.writeTextElement ("editeur", editeur ()); stream.writeTextElement ("sortie", date ().toString ()); if(!url ().isEmpty ()) { stream.writeTextElement ("url", url ().toString ()); } stream.writeTextElement ("genre", genre ()); stream.writeTextElement ("lu", QString::number (isFini ())); foreach(QString atlas, auteur ()) { stream.writeTextElement ("auteur", atlas); }
Meta::GenrePtr UpnpCache::getGenre(const QString& name) { if( m_genreMap.contains( name ) ) return m_genreMap[name]; Meta::UpnpGenrePtr genre( new Meta::UpnpGenre( name ) ); m_genreMap.insert( name, Meta::GenrePtr::staticCast( genre ) ); return m_genreMap[name]; }
void BandeDessine::sauvegarde(QXmlStreamWriter & stream) { stream.writeStartElement("media"); stream.writeTextElement("nom", nom()); stream.writeTextElement("date", date().toString()); stream.writeTextElement("genre", genre()); stream.writeTextElement("url", url().toString()); stream.writeTextElement("fini", QString::number(isFini())); stream.writeTextElement("lu", QString::number(isLu())); stream.writeTextElement("encoursachat", QString::number(isEnCoursAchat())); foreach(QString artemis, getAuteur()) { stream.writeTextElement("auteur", artemis); }
MediaInfo LocalFileResolver::ResolveInfo (const QString& file) { const auto& modified = QFileInfo (file).lastModified (); { QReadLocker locker (&CacheLock_); if (Cache_.contains (file)) { const auto& pair = Cache_ [file]; if (pair.first == modified) return pair.second; } } QMutexLocker tlLocker (&TaglibMutex_); auto r = GetFileRef (file); auto tag = r.tag (); if (!tag) throw ResolveError (file, "failed to get file tags"); auto audio = r.audioProperties (); auto ftl = [] (const TagLib::String& str) { return QString::fromUtf8 (str.toCString (true)); }; auto genres = ftl (tag->genre ()).split ('/', QString::SkipEmptyParts); std::for_each (genres.begin (), genres.end (), [] (QString& genre) { genre = genre.trimmed (); }); MediaInfo info { file, ftl (tag->artist ()), ftl (tag->album ()), ftl (tag->title ()), genres, audio ? audio->length () : 0, static_cast<qint32> (tag->year ()), static_cast<qint32> (tag->track ()) }; { QWriteLocker locker (&CacheLock_); if (Cache_.size () > 200) Cache_.clear (); Cache_ [file] = qMakePair (modified, info); } return info; }
void Film::sauvegarde(QXmlStreamWriter & stream) { qDebug()<<"Sauvegade de "<<nom(); stream.writeStartElement("media"); stream.writeTextElement("nom", nom()); stream.writeTextElement("genre", genre()); stream.writeTextElement("date", date().toString("d/M/yyyy")); stream.writeTextElement("vue", QString::number(isFini())); stream.writeTextElement("url", url().toString()); stream.writeTextElement("type", getType()); stream.writeTextElement("realisateur", getRealisateur()); stream.writeTextElement("scenariste", getScenariste()); stream.writeTextElement("support", QString::number(getSupport())); stream.writeTextElement("duree", getDuree().toString()); foreach(QString jupiter, getActeursPrincipaux()) { stream.writeTextElement("acteur", jupiter); }
QString MetaBundle::infoByColumn( int column, bool pretty ) const { switch( column ) { case PlaylistItem::Filename: return filename(); case PlaylistItem::Title: return title(); case PlaylistItem::Artist: return artist(); case PlaylistItem::Album: return album(); case PlaylistItem::Year: return year(); case PlaylistItem::Comment: return comment(); case PlaylistItem::Genre: return genre(); case PlaylistItem::Track: return track(); case PlaylistItem::Directory: return directory(); case PlaylistItem::Length: return pretty ? prettyLength() : QString::number( length() ); case PlaylistItem::Bitrate: return pretty ? prettyBitrate() : QString::number( bitrate() ); case PlaylistItem::Type: return type( pretty ); } return QString::null; }
void TestMetaManager::read() { QString album("Album: " + _meta->album()); QString artist("Artist: " + _meta->artist()); QString artwork("Artwork: " + _meta->artwork()); QString copyright("Copyright: " + _meta->copyright()); QString description("Description: " + _meta->description()); QString encoder("Encoder: " + _meta->encoder()); QString genre("Genre: " + _meta->genre()); QString id("ID: " + _meta->id()); QString language("Language: " + _meta->language()); QString number("Number: " + QString().number(_meta->number())); QString publisher("Publisher: " + _meta->publisher()); QString rating("Rating: " + _meta->rating()); QString setting("Setting: " + _meta->setting()); QString title("Title: " + _meta->title()); QString url("Url: " + _meta->url()); QString year("Year: " + QString().number(_meta->year())); ui->labelMeta->setText(album + "\n" + artist + "\n" + artwork + "\n" + copyright + "\n" + description + "\n" + encoder + "\n" + genre + "\n" + id + "\n" + language + "\n" + number + "\n" + publisher + "\n" + rating + "\n" + setting + "\n" + title + "\n" + url + "\n" + year + "\n"); }
void XSPFParser::readTrack(QXmlStreamReader & xml, MediaInfo & mediaInfo) const { while (!xml.atEnd() && !_stop) { xml.readNext(); QString element(xml.name().toString()); if (xml.isStartElement()) { //Filename if (element == XSPF_LOCATION) { QUrl url = QUrl::fromEncoded(xml.readElementText().toUtf8()); QString location(url.toString()); bool isUrl = MediaInfo::isUrl(location); mediaInfo.setUrl(isUrl); if (isUrl) { mediaInfo.setFileName(location); } else { QString path(QFileInfo(_filename).path()); mediaInfo.setFileName(Util::canonicalFilePath(path, location)); } } //Unique ID else if (element == XSPF_IDENTIFIER) { QString identifier(xml.readElementText()); //FIXME not implemented yet } //Artist else if (element == XSPF_CREATOR) { QString creator(xml.readElementText()); mediaInfo.insertMetadata(MediaInfo::Artist, creator); } //Album else if (element == XSPF_ALBUM) { QString album(xml.readElementText()); mediaInfo.insertMetadata(MediaInfo::Album, album); } //Track number else if (element == XSPF_TRACKNUM) { QString trackNum(xml.readElementText()); mediaInfo.insertMetadata(MediaInfo::TrackNumber, trackNum); } //Title else if (element == XSPF_TITLE) { QString title(xml.readElementText()); mediaInfo.insertMetadata(MediaInfo::Title, title); } //Comment else if (element == XSPF_ANNOTATION) { QString annotation(xml.readElementText()); if (mediaInfo.metadataValue(MediaInfo::Title).isEmpty()) { //Some people didn't understand how XSPF works //and confused annotation with title mediaInfo.insertMetadata(MediaInfo::Title, annotation); } mediaInfo.insertMetadata(MediaInfo::Comment, annotation); } //Length else if (element == XSPF_DURATION) { int duration = xml.readElementText().toInt(); //XSPF gives us the duration in milliseconds //Let's convert it to seconds mediaInfo.setLength(duration / 1000); } //Album art URL else if (element == XSPF_IMAGE) { QString image(xml.readElementText()); //FIXME not implemented yet //mediaInfo.insertMetadata(MediaInfo::AlbumArt, image); } //URL of the original web page else if (element == XSPF_INFO) { QString info(xml.readElementText()); mediaInfo.insertMetadata(MediaInfo::URL, info); } //Meta else if (element == XSPF_META) { //These tags are specific to foobar2000 XSPF plugin QXmlStreamAttributes attributes = xml.attributes(); //Date if (attributes.hasAttribute(XSPF_FOOBAR2000_DATE)) { QString date(attributes.value(XSPF_FOOBAR2000_DATE).toString()); mediaInfo.insertMetadata(MediaInfo::Year, date); } //Genre else if (attributes.hasAttribute(XSPF_FOOBAR2000_GENRE)) { QString genre(attributes.value(XSPF_FOOBAR2000_GENRE).toString()); mediaInfo.insertMetadata(MediaInfo::Genre, genre); } } else if (element == XSPF_EXTENSION) { QString xspfNamespace(xml.attributes().value(XSPF_APPLICATION).toString()); if (xspfNamespace == XSPF_QUARKPLAYER_NAMESPACE) { while (!xml.atEnd() && !_stop) { xml.readNext(); QString extensionElement(xml.name().toString()); if (xml.isStartElement()) { if (extensionElement == XSPF_QUARKPLAYER_CUE_START_INDEX) { QString cueStartIndex(xml.readElementText()); mediaInfo.setCueStartIndex(cueStartIndex); } else if (extensionElement == XSPF_QUARKPLAYER_CUE_END_INDEX) { QString cueEndIndex(xml.readElementText()); mediaInfo.setCueEndIndex(cueEndIndex); } else if (extensionElement == XSPF_QUARKPLAYER_YEAR) { QString year(xml.readElementText()); mediaInfo.insertMetadata(MediaInfo::Year, year); } else if (extensionElement == XSPF_QUARKPLAYER_GENRE) { QString genre(xml.readElementText()); mediaInfo.insertMetadata(MediaInfo::Genre, genre); } } if (xml.isEndElement()) { if (extensionElement == XSPF_EXTENSION) { break; } } } } } } if (xml.isEndElement()) { if (element == XSPF_TRACK) { return; } } } }
void MainWindow::ParseBigZipFunc(QFileInfo fi, MainWindow*/* Parent*/) { QFile infile(fi.absoluteFilePath()); infile.open(QIODevice::ReadOnly); QuaZip BigZip(&infile); BigZip.open(QuaZip::mdUnzip); QList<QuaZipFileInfo> ZipFI = BigZip.getFileInfoList(); QElapsedTimer* timer_parse = new QElapsedTimer(); QElapsedTimer* timer_author = new QElapsedTimer(); QElapsedTimer* timer_book = new QElapsedTimer(); int books_processed = 0; SmpLibDatabase* db = new SmpLibDatabase(m_sDBFile, m_sDbEngine); foreach(QuaZipFileInfo fi2, ZipFI) { if(!fi2.name.endsWith("fb2", Qt::CaseInsensitive)) continue; timer_parse->start(); BigZip.setCurrentFile(fi2.name); QuaZipFile file(&BigZip); file.open(QIODevice::ReadOnly); QByteArray BookData = file.readAll(); file.close(); QXmlStreamReader reader(BookData); QList<QString> first_name; QList<QString> last_name; QString book_title(""); QString genre(""); QString sequence_name(""); QString sequence_number = ""; bool bAuthorBlock = false; while (!reader.atEnd()) { QXmlStreamReader::TokenType token = reader.readNext(); /* If token is just StartDocument, we'll go to next.*/ if(token == QXmlStreamReader::StartDocument) { continue; } if (reader.isStartElement() && reader.name() == "author") bAuthorBlock = true; if (reader.isEndElement() && reader.name() == "author") bAuthorBlock = false; if (reader.isStartElement() && reader.name() == "first-name" && bAuthorBlock) { first_name.append(reader.readElementText().trimmed()); } else if (reader.isStartElement() && reader.name() == "last-name" && bAuthorBlock) { last_name.append(reader.readElementText().trimmed()); } else if (reader.isStartElement() && reader.name() == "book-title" && book_title.isEmpty()) { book_title = reader.readElementText(); } else if (reader.isStartElement() && reader.name() == "genre") { genre = reader.readElementText(); } else if (reader.isStartElement() && reader.name() == "sequence") { foreach(const QXmlStreamAttribute &attr, reader.attributes()) { if (attr.name().toString() == QLatin1String("name")) { sequence_name = attr.value().toString(); } else if (attr.name().toString() == QLatin1String("number")) { sequence_number = attr.value().toString(); } } } else if(reader.isEndElement() && reader.name() == "title-info") break; else continue; if (reader.hasError()) { } }