diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2009-08-08 14:35:03 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2009-08-08 14:35:03 +0000 |
| commit | 1eef96342df93be653ec498f73f26b608381fd54 (patch) | |
| tree | d926e1a8c9642d1e2335aa5f606f65c618c5e6e6 /src/plugins/Input/vorbis/decodervorbisfactory.cpp | |
| parent | 5ad45d8d9e9bd0bfa294220cbd865251a00d88e6 (diff) | |
| download | qmmp-1eef96342df93be653ec498f73f26b608381fd54.tar.gz qmmp-1eef96342df93be653ec498f73f26b608381fd54.tar.bz2 qmmp-1eef96342df93be653ec498f73f26b608381fd54.zip | |
vorbis plugin: added support for composer and disc number tags
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1123 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input/vorbis/decodervorbisfactory.cpp')
| -rw-r--r-- | src/plugins/Input/vorbis/decodervorbisfactory.cpp | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/src/plugins/Input/vorbis/decodervorbisfactory.cpp b/src/plugins/Input/vorbis/decodervorbisfactory.cpp index 124b001e7..8dcd738c7 100644 --- a/src/plugins/Input/vorbis/decodervorbisfactory.cpp +++ b/src/plugins/Input/vorbis/decodervorbisfactory.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008 by Ilya Kotov * + * Copyright (C) 2008-2009 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -20,7 +20,7 @@ #include <QtGui> #include <taglib/tag.h> #include <taglib/fileref.h> -#include <tag.h> +#include <taglib/vorbisfile.h> #include "detailsdialog.h" #include "decoder_vorbis.h" @@ -63,13 +63,12 @@ Decoder *DecoderVorbisFactory::create(QObject *parent, QIODevice *input, return new DecoderVorbis(parent, this, input, output); } -//FileInfo *DecoderVorbisFactory::createFileInfo(const QString &source) QList<FileInfo *> DecoderVorbisFactory::createPlayList(const QString &fileName, bool useMetaData) { FileInfo *info = new FileInfo(fileName); - TagLib::FileRef fileRef(fileName.toLocal8Bit ()); - TagLib::Tag *tag = useMetaData ? fileRef.tag() : 0; + TagLib::Ogg::Vorbis::File fileRef(fileName.toLocal8Bit ()); + TagLib::Ogg::XiphComment *tag = useMetaData ? fileRef.tag() : 0; if (tag && !tag->isEmpty()) { @@ -89,6 +88,17 @@ QList<FileInfo *> DecoderVorbisFactory::createPlayList(const QString &fileName, if (fileRef.audioProperties()) info->setLength(fileRef.audioProperties()->length()); + //additional metadata + if(tag) + { + TagLib::StringList fld; + if(!(fld = tag->fieldListMap()["COMPOSER"]).isEmpty()) + info->setMetaData(Qmmp::COMPOSER, + QString::fromUtf8(fld.toString().toCString(TRUE)).trimmed()); + if(!(fld = tag->fieldListMap()["DISCNUMBER"]).isEmpty()) + info->setMetaData(Qmmp::DISCNUMBER, + QString::fromUtf8(fld.toString().toCString(TRUE)).trimmed()); + } QList <FileInfo*> list; list << info; @@ -103,10 +113,7 @@ QObject* DecoderVorbisFactory::showDetails(QWidget *parent, const QString &path) } void DecoderVorbisFactory::showSettings(QWidget *) -{ - /*SettingsDialog *s = new SettingsDialog(parent); - s -> show();*/ -} +{} void DecoderVorbisFactory::showAbout(QWidget *parent) { |
