diff options
Diffstat (limited to 'src/plugins/Input')
| -rw-r--r-- | src/plugins/Input/flac/decoder_flac.cpp | 5 | ||||
| -rw-r--r-- | src/plugins/Input/flac/decoderflacfactory.cpp | 11 |
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) |
