diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2018-05-13 08:29:46 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2018-05-13 08:29:46 +0000 |
| commit | 593e5a4f2c8e1a90431c479ba884dd469cd7a9fb (patch) | |
| tree | f0b4cf4a9d74471faac0983e67bb3465187aff7b /src/plugins/Input/vorbis | |
| parent | 313e1a54cf2b57794c1d0cb6889b0ed2aa016ab2 (diff) | |
| download | qmmp-593e5a4f2c8e1a90431c479ba884dd469cd7a9fb.tar.gz qmmp-593e5a4f2c8e1a90431c479ba884dd469cd7a9fb.tar.bz2 qmmp-593e5a4f2c8e1a90431c479ba884dd469cd7a9fb.zip | |
enabled vorbis plugin
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@7953 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input/vorbis')
| -rw-r--r-- | src/plugins/Input/vorbis/decoder_vorbis.cpp | 2 | ||||
| -rw-r--r-- | src/plugins/Input/vorbis/decodervorbisfactory.cpp | 76 | ||||
| -rw-r--r-- | src/plugins/Input/vorbis/decodervorbisfactory.h | 13 |
3 files changed, 44 insertions, 47 deletions
diff --git a/src/plugins/Input/vorbis/decoder_vorbis.cpp b/src/plugins/Input/vorbis/decoder_vorbis.cpp index 34d9ff72c..06de8b3e1 100644 --- a/src/plugins/Input/vorbis/decoder_vorbis.cpp +++ b/src/plugins/Input/vorbis/decoder_vorbis.cpp @@ -7,7 +7,6 @@ #include <qmmp/buffer.h> #include <qmmp/output.h> -#include <qmmp/fileinfo.h> #include <stdlib.h> #include <string.h> #include <QObject> @@ -212,7 +211,6 @@ void DecoderVorbis::updateTags() metaData.insert(Qmmp::DISCNUMBER, QString::number(atoi(comments->user_comments[i] + strlen ("discnumber=")))); } - metaData.insert(Qmmp::URL, m_url); addMetaData(metaData); } diff --git a/src/plugins/Input/vorbis/decodervorbisfactory.cpp b/src/plugins/Input/vorbis/decodervorbisfactory.cpp index 717be4795..a9159cfc8 100644 --- a/src/plugins/Input/vorbis/decodervorbisfactory.cpp +++ b/src/plugins/Input/vorbis/decodervorbisfactory.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008-2016 by Ilya Kotov * + * Copyright (C) 2008-2018 by Ilya Kotov * * forkotov02@ya.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -70,50 +70,58 @@ MetaDataModel* DecoderVorbisFactory::createMetaDataModel(const QString &path, QO return new VorbisMetaDataModel(path, parent); } -QList<FileInfo *> DecoderVorbisFactory::createPlayList(const QString &fileName, bool useMetaData, QStringList *) +QList<TrackInfo *> DecoderVorbisFactory::createPlayList(const QString &fileName, TrackInfo::Parts parts, QStringList *) { - FileInfo *info = new FileInfo(fileName); + TrackInfo *info = new TrackInfo(fileName); TagLib::FileStream stream(QStringToFileName(fileName), true); TagLib::Ogg::Vorbis::File fileRef(&stream); - TagLib::Ogg::XiphComment *tag = useMetaData ? fileRef.tag() : 0; - if (tag && !tag->isEmpty()) + if(fileRef.audioProperties()) + info->setDuration(fileRef.audioProperties()->lengthInMilliseconds()); + + if(parts & TrackInfo::MetaData) + { + TagLib::Ogg::XiphComment *tag = fileRef.tag(); + if (tag && !tag->isEmpty()) + { + info->setValue(Qmmp::ALBUM, QString::fromUtf8(tag->album().toCString(true)).trimmed()); + info->setValue(Qmmp::ARTIST, QString::fromUtf8(tag->artist().toCString(true)).trimmed()); + info->setValue(Qmmp::COMMENT, QString::fromUtf8(tag->comment().toCString(true)).trimmed()); + info->setValue(Qmmp::GENRE, QString::fromUtf8(tag->genre().toCString(true)).trimmed()); + info->setValue(Qmmp::TITLE, QString::fromUtf8(tag->title().toCString(true)).trimmed()); + info->setValue(Qmmp::YEAR, tag->year()); + info->setValue(Qmmp::TRACK, tag->track()); + } + } + + if(parts & TrackInfo::Properties) { - info->setMetaData(Qmmp::ALBUM, - QString::fromUtf8(tag->album().toCString(true)).trimmed()); - info->setMetaData(Qmmp::ARTIST, - QString::fromUtf8(tag->artist().toCString(true)).trimmed()); - info->setMetaData(Qmmp::COMMENT, - QString::fromUtf8(tag->comment().toCString(true)).trimmed()); - info->setMetaData(Qmmp::GENRE, - QString::fromUtf8(tag->genre().toCString(true)).trimmed()); - info->setMetaData(Qmmp::TITLE, - QString::fromUtf8(tag->title().toCString(true)).trimmed()); - info->setMetaData(Qmmp::YEAR, tag->year()); - info->setMetaData(Qmmp::TRACK, tag->track()); + info->setValue(Qmmp::BITRATE, fileRef.audioProperties()->bitrate()); + info->setValue(Qmmp::SAMPLERATE, fileRef.audioProperties()->sampleRate()); + info->setValue(Qmmp::CHANNELS, fileRef.audioProperties()->channels()); + info->setValue(Qmmp::BITS_PER_SAMPLE, 16); + info->setValue(Qmmp::FORMAT_NAME, "Ogg Vorbis"); } - if (fileRef.audioProperties()) - info->setLength(fileRef.audioProperties()->length()); - //additional metadata - if(tag) + if(parts & TrackInfo::ReplayGainInfo) { - TagLib::StringList fld; - if(!(fld = tag->fieldListMap()["ALBUMARTIST"]).isEmpty()) - info->setMetaData(Qmmp::ALBUMARTIST, - QString::fromUtf8(fld.front().toCString(true)).trimmed()); - if(!(fld = tag->fieldListMap()["COMPOSER"]).isEmpty()) - info->setMetaData(Qmmp::COMPOSER, - QString::fromUtf8(fld.front().toCString(true)).trimmed()); - if(!(fld = tag->fieldListMap()["DISCNUMBER"]).isEmpty()) - info->setMetaData(Qmmp::DISCNUMBER, - QString::fromUtf8(fld.front().toCString(true)).trimmed()); + TagLib::Ogg::XiphComment *tag = fileRef.tag(); + if(tag) + { + TagLib::Ogg::FieldListMap items = tag->fieldListMap(); + if(items.contains("REPLAYGAIN_TRACK_GAIN")) + info->setValue(Qmmp::REPLAYGAIN_TRACK_GAIN,TStringToQString(items["REPLAYGAIN_TRACK_GAIN"].front())); + if(items.contains("REPLAYGAIN_TRACK_PEAK")) + info->setValue(Qmmp::REPLAYGAIN_TRACK_PEAK,TStringToQString(items["REPLAYGAIN_TRACK_PEAK"].front())); + if(items.contains("REPLAYGAIN_ALBUM_GAIN")) + info->setValue(Qmmp::REPLAYGAIN_ALBUM_GAIN,TStringToQString(items["REPLAYGAIN_ALBUM_GAIN"].front())); + if(items.contains("REPLAYGAIN_ALBUM_PEAK")) + info->setValue(Qmmp::REPLAYGAIN_ALBUM_PEAK,TStringToQString(items["REPLAYGAIN_ALBUM_PEAK"].front())); + } } - QList <FileInfo*> list; - list << info; - return list; + return QList<TrackInfo*>() << info; } void DecoderVorbisFactory::showSettings(QWidget *) diff --git a/src/plugins/Input/vorbis/decodervorbisfactory.h b/src/plugins/Input/vorbis/decodervorbisfactory.h index e79b0642d..89b32b650 100644 --- a/src/plugins/Input/vorbis/decodervorbisfactory.h +++ b/src/plugins/Input/vorbis/decodervorbisfactory.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006-2016 by Ilya Kotov * + * Copyright (C) 2006-2018 by Ilya Kotov * * forkotov02@ya.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -20,16 +20,7 @@ #ifndef DECODERVORBISFACTORY_H #define DECODERVORBISFACTORY_H -#include <QObject> -#include <QString> -#include <QIODevice> -#include <QWidget> - -#include <qmmp/decoder.h> -#include <qmmp/output.h> #include <qmmp/decoderfactory.h> -#include <qmmp/fileinfo.h> -#include <qmmp/metadatamodel.h> /** @author Ilya Kotov <forkotov02@ya.ru> @@ -46,7 +37,7 @@ public: const DecoderProperties properties() const; Decoder *create(const QString &path, QIODevice *input); MetaDataModel* createMetaDataModel(const QString &path, QObject *parent = 0); - QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData, QStringList *); + QList<TrackInfo *> createPlayList(const QString &fileName, TrackInfo::Parts parts, QStringList *); QObject* showDetails(QWidget *parent, const QString &path); void showSettings(QWidget *parent); void showAbout(QWidget *parent); |
