aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/flac
diff options
context:
space:
mode:
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)