aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/flac
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2012-02-13 20:02:54 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2012-02-13 20:02:54 +0000
commit526e04b8b4d8ba43f39c0bb653200b054bf5dbd9 (patch)
tree243ac42cd058530735f62807599a36e760f377c4 /src/plugins/Input/flac
parent336f191f80cbb5cfba9b4910ee1ada7a8133796e (diff)
downloadqmmp-526e04b8b4d8ba43f39c0bb653200b054bf5dbd9.tar.gz
qmmp-526e04b8b4d8ba43f39c0bb653200b054bf5dbd9.tar.bz2
qmmp-526e04b8b4d8ba43f39c0bb653200b054bf5dbd9.zip
added 'disc number' tag support for flac files with embedded cuesheet, added sorting by disc number (Brice Videau)
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2601 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input/flac')
-rw-r--r--src/plugins/Input/flac/decoder_flac.cpp5
-rw-r--r--src/plugins/Input/flac/decoderflacfactory.cpp11
2 files changed, 16 insertions, 0 deletions
diff --git a/src/plugins/Input/flac/decoder_flac.cpp b/src/plugins/Input/flac/decoder_flac.cpp
index a8a1c3c1f..3651f407a 100644
--- a/src/plugins/Input/flac/decoder_flac.cpp
+++ b/src/plugins/Input/flac/decoder_flac.cpp
@@ -292,6 +292,11 @@ bool DecoderFLAC::initialize()
}
data()->input = new QFile(p);
data()->input->open(QIODevice::ReadOnly);
+ if(xiph_comment->contains("DISCNUMBER") && !xiph_comment->fieldListMap()["DISCNUMBER"].isEmpty())
+ {
+ m_parser->info(m_track)->setMetaData(Qmmp::DISCNUMBER,
+ QString::fromUtf8(xiph_comment->fieldListMap()["DISCNUMBER"].toString().toCString(true)).trimmed());
+ }
QMap<Qmmp::MetaData, QString> metaData = m_parser->info(m_track)->metaData();
addMetaData(metaData); //send metadata
}
diff --git a/src/plugins/Input/flac/decoderflacfactory.cpp b/src/plugins/Input/flac/decoderflacfactory.cpp
index fc9779d82..521318336 100644
--- a/src/plugins/Input/flac/decoderflacfactory.cpp
+++ b/src/plugins/Input/flac/decoderflacfactory.cpp
@@ -132,6 +132,17 @@ QList<FileInfo *> DecoderFLACFactory::createPlayList(const QString &fileName, bo
if (tag->fieldListMap().contains("CUESHEET"))
{
CUEParser parser(tag->fieldListMap()["CUESHEET"].toString().toCString(true), fileName);
+ if(tag->contains("DISCNUMBER") && !tag->fieldListMap()["DISCNUMBER"].isEmpty())
+ {
+ TagLib::StringList fld;
+ fld = tag->fieldListMap()["DISCNUMBER"];
+ int i;
+ for(i=1; i<=parser.count(); i++)
+ {
+ parser.info(i)->setMetaData(Qmmp::DISCNUMBER,
+ QString::fromUtf8(fld.toString().toCString(true)).trimmed());
+ }
+ }
list = parser.createPlayList();
delete info;
if(flacFile)