aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/vorbis
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2018-05-13 08:29:46 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2018-05-13 08:29:46 +0000
commit593e5a4f2c8e1a90431c479ba884dd469cd7a9fb (patch)
treef0b4cf4a9d74471faac0983e67bb3465187aff7b /src/plugins/Input/vorbis
parent313e1a54cf2b57794c1d0cb6889b0ed2aa016ab2 (diff)
downloadqmmp-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.cpp2
-rw-r--r--src/plugins/Input/vorbis/decodervorbisfactory.cpp76
-rw-r--r--src/plugins/Input/vorbis/decodervorbisfactory.h13
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);