From 33317ad580fd2f5981f53e866b8d1795132f32bb Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Thu, 25 Jun 2015 18:53:41 +0000 Subject: formatter: added track number field git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@5184 90c681e8-e032-0410-971d-27865f9a5e38 --- src/qmmpui/metadataformatter.cpp | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) (limited to 'src/qmmpui/metadataformatter.cpp') diff --git a/src/qmmpui/metadataformatter.cpp b/src/qmmpui/metadataformatter.cpp index aa24eb387..16e4336bc 100644 --- a/src/qmmpui/metadataformatter.cpp +++ b/src/qmmpui/metadataformatter.cpp @@ -27,6 +27,7 @@ Syntax: %t - title, %n - track number, %NN - 2-digit track number, +%I - track index, %g - genre, %c - comment, %C - composer, @@ -58,6 +59,7 @@ MetaDataFormatter::MetaDataFormatter(const QString &pattern) m_fieldNames.insert("NN", Param::TWO_DIGIT_TRACK); m_fieldNames.insert("l", Param::DURATION); m_fieldNames.insert("f", Param::FILE_NAME); + m_fieldNames.insert("I", Param::TRACK_INDEX); if(!pattern.isEmpty()) setPattern(pattern); @@ -88,12 +90,12 @@ const QString MetaDataFormatter::pattern() const QString MetaDataFormatter::format(const PlayListTrack *item) const { - return format(*item, item->length()); + return format(*item, item->length(), item->trackNumber()); } -QString MetaDataFormatter::format(const QMap &metaData, qint64 length) const +QString MetaDataFormatter::format(const QMap &metaData, qint64 length, int track) const { - return evalute(&m_nodes, &metaData, length).trimmed(); + return evalute(&m_nodes, &metaData, length, track).trimmed(); } QString MetaDataFormatter::formatLength(qint64 length) @@ -298,7 +300,7 @@ void MetaDataFormatter::parseEscape(QList *nodes, QStri nodes->append(node); } -QString MetaDataFormatter::evalute(const QList *nodes, const QMap *metaData, qint64 length) const +QString MetaDataFormatter::evalute(const QList *nodes, const QMap *metaData, qint64 length, int track) const { QString out; for(int i = 0; i < nodes->count(); ++i) @@ -307,32 +309,32 @@ QString MetaDataFormatter::evalute(const QList *nodes, const QMap *nodes, const QMap *metaData, qint64 length) const +QString MetaDataFormatter::printParam(MetaDataFormatter::Param *p, const QMap *metaData, qint64 length, int track) const { switch (p->type) { case Param::FIELD: - return printField(p->field, metaData, length); + return printField(p->field, metaData, length, track); break; case Param::TEXT: return p->text; break; case Param::NODES: - return evalute(&p->children, metaData, length); + return evalute(&p->children, metaData, length, track); break; default: break; @@ -360,7 +362,7 @@ QString MetaDataFormatter::printParam(MetaDataFormatter::Param *p, const QMap *metaData, qint64 length) const +QString MetaDataFormatter::printField(int field, const QMap *metaData, qint64 length, int track) const { if(field >= Qmmp::TITLE && field <= Qmmp::URL) { @@ -392,6 +394,10 @@ QString MetaDataFormatter::printField(int field, const QMapvalue(Qmmp::URL).section('/',-1); } + else if(field == Param::TRACK_INDEX) + { + return QString::number(track + 1); + } return QString(); } -- cgit v1.2.3-13-gbd6f