コード例 #1
0
ファイル: vinoisebatcher.cpp プロジェクト: EQ4/Visore
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();
}
コード例 #2
0
ファイル: livre.cpp プロジェクト: Chewnonobelix/ProduitMedia
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);
    }
コード例 #3
0
ファイル: UpnpCache.cpp プロジェクト: ErrAza/amarok
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];
}
コード例 #4
0
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);
    }
コード例 #5
0
	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;
	}
コード例 #6
0
ファイル: film.cpp プロジェクト: Chewnonobelix/ProduitMedia
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);
    }
コード例 #7
0
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;
}
コード例 #8
0
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");
}
コード例 #9
0
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;
			}
		}
	}
}
コード例 #10
0
ファイル: mainwindow.cpp プロジェクト: loki1368/simplelib
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()) {
            }
        }