aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2018-05-02 10:47:41 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2018-05-02 10:47:41 +0000
commitee5abc61159a81f52f0f3d1fcd2f1fbc13f3b4a2 (patch)
tree41a421a7fc1d042a348ec212fb967a124f0b9bd2
parent9bdd208bbb16ec15d52653a9913789b44b3b28b3 (diff)
downloadqmmp-ee5abc61159a81f52f0f3d1fcd2f1fbc13f3b4a2.tar.gz
qmmp-ee5abc61159a81f52f0f3d1fcd2f1fbc13f3b4a2.tar.bz2
qmmp-ee5abc61159a81f52f0f3d1fcd2f1fbc13f3b4a2.zip
refactoring
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@7944 90c681e8-e032-0410-971d-27865f9a5e38
-rw-r--r--src/plugins/CommandLineOptions/StatusOption/statusoption.cpp4
-rw-r--r--src/plugins/Effect/filewriter/filewriterplugin.cpp2
-rw-r--r--src/plugins/General/statusicon/statusicon.cpp4
-rw-r--r--src/plugins/Ui/skinned/textscroller.cpp2
-rw-r--r--src/qmmpui/metadataformatter.cpp60
-rw-r--r--src/qmmpui/metadataformatter.h15
6 files changed, 36 insertions, 51 deletions
diff --git a/src/plugins/CommandLineOptions/StatusOption/statusoption.cpp b/src/plugins/CommandLineOptions/StatusOption/statusoption.cpp
index 79d2b64bd..96a26b9aa 100644
--- a/src/plugins/CommandLineOptions/StatusOption/statusoption.cpp
+++ b/src/plugins/CommandLineOptions/StatusOption/statusoption.cpp
@@ -71,7 +71,7 @@ QString StatusOption::executeCommand(const QString &opt_str, const QStringList &
out += "TRACK = %n\n";
out += "FILE = %f";
MetaDataFormatter formatter(out);
- out = formatter.format(&core->trackInfo());
+ out = formatter.format(core->trackInfo());
}
out += "\n";
}
@@ -79,7 +79,7 @@ QString StatusOption::executeCommand(const QString &opt_str, const QStringList &
{
QString t = args.join(" ");
MetaDataFormatter formatter(t);
- out = formatter.format(&core->trackInfo());
+ out = formatter.format(core->trackInfo());
out += "\n";
}
else if(opt_str == "--nowplaying-syntax")
diff --git a/src/plugins/Effect/filewriter/filewriterplugin.cpp b/src/plugins/Effect/filewriter/filewriterplugin.cpp
index ecc0d1ba7..e60047ac1 100644
--- a/src/plugins/Effect/filewriter/filewriterplugin.cpp
+++ b/src/plugins/Effect/filewriter/filewriterplugin.cpp
@@ -123,7 +123,7 @@ void FileWriterPlugin::init(const TrackInfo &info)
fileName = info.path().section("/", 1);
MetaDataFormatter formatter(fileName);
- fileName = formatter.format(&info);
+ fileName = formatter.format(info);
if(!fileName.endsWith(".ogg", Qt::CaseInsensitive))
fileName.append(".ogg");
diff --git a/src/plugins/General/statusicon/statusicon.cpp b/src/plugins/General/statusicon/statusicon.cpp
index a4b96b7d3..69ed86387 100644
--- a/src/plugins/General/statusicon/statusicon.cpp
+++ b/src/plugins/General/statusicon/statusicon.cpp
@@ -136,7 +136,7 @@ void StatusIcon::showMetaData()
}
}
- QString message = m_messageFormatter.format(&info);
+ QString message = m_messageFormatter.format(info);
if (message.isEmpty())
message = info.path().section('/',-1);
@@ -146,7 +146,7 @@ void StatusIcon::showMetaData()
if(m_showToolTip)
{
- message = m_toolTipFormatter.format(&info);
+ message = m_toolTipFormatter.format(info);
if(message.isEmpty())
message = info.path().section('/',-1);
m_tray->setToolTip(message);
diff --git a/src/plugins/Ui/skinned/textscroller.cpp b/src/plugins/Ui/skinned/textscroller.cpp
index 5a22049b5..e6b8cfa7d 100644
--- a/src/plugins/Ui/skinned/textscroller.cpp
+++ b/src/plugins/Ui/skinned/textscroller.cpp
@@ -253,7 +253,7 @@ void TextScroller::processMetaData()
{
if(m_core->state() == Qmmp::Playing)
{
- m_titleText = m_formater.format(&m_core->trackInfo());
+ m_titleText = m_formater.format(m_core->trackInfo());
updateText();
}
}
diff --git a/src/qmmpui/metadataformatter.cpp b/src/qmmpui/metadataformatter.cpp
index 2b1174cfd..b508f1cad 100644
--- a/src/qmmpui/metadataformatter.cpp
+++ b/src/qmmpui/metadataformatter.cpp
@@ -98,17 +98,12 @@ const QString MetaDataFormatter::pattern() const
QString MetaDataFormatter::format(const PlayListTrack *item) const
{
- return format(item->metaData(), item->path(), item->duration(), item->trackIndex());
+ return evalute(&m_nodes, item, item->trackIndex());
}
-QString MetaDataFormatter::format(const QMap<Qmmp::MetaData, QString> &metaData, const QString &path, qint64 duration, int track) const
+QString MetaDataFormatter::format(const TrackInfo &info, int trackIndex) const
{
- return evalute(&m_nodes, &metaData, &path, duration, track).trimmed();
-}
-
-QString MetaDataFormatter::format(const TrackInfo *info, int track) const
-{
- return format(info->metaData(), info->path(), info->duration(), track);
+ return evalute(&m_nodes, &info, trackIndex);
}
QString MetaDataFormatter::formatDuration(qint64 duration, bool hideZero, bool showMs)
@@ -398,8 +393,7 @@ void MetaDataFormatter::parseEscape(QList<MetaDataFormatter::Node> *nodes, QStri
nodes->append(node);
}
-QString MetaDataFormatter::evalute(const QList<Node> *nodes, const QMap<Qmmp::MetaData, QString> *metaData,
- const QString *path, qint64 length, int track) const
+QString MetaDataFormatter::evalute(const QList<Node> *nodes, const TrackInfo *info, int trackIndex) const
{
QString out;
for(int i = 0; i < nodes->count(); ++i)
@@ -408,57 +402,56 @@ QString MetaDataFormatter::evalute(const QList<Node> *nodes, const QMap<Qmmp::Me
if(node.command == Node::PRINT_TEXT)
{
Param p = node.params.first();
- out.append(printParam(&p, metaData, path, length, track));
+ out.append(printParam(&p, info, trackIndex));
}
else if(node.command == Node::IF_KEYWORD)
{
- QString var1 = printParam(&node.params[0], metaData, path, length, track);
+ QString var1 = printParam(&node.params[0], info, trackIndex);
if(var1.isEmpty() || var1 == "0")
- out.append(printParam(&node.params[2], metaData, path, length, track));
+ out.append(printParam(&node.params[2], info, trackIndex));
else
- out.append(printParam(&node.params[1], metaData, path, length, track));
+ out.append(printParam(&node.params[1], info, trackIndex));
}
else if(node.command == Node::AND_OPERATOR)
{
- QString var1 = printParam(&node.params[0], metaData, path, length, track);
- QString var2 = printParam(&node.params[1], metaData, path, length, track);
+ QString var1 = printParam(&node.params[0], info, trackIndex);
+ QString var2 = printParam(&node.params[1], info, trackIndex);
if(!var1.isEmpty() && !var2.isEmpty())
out.append("1");
}
else if(node.command == Node::OR_OPERATOR)
{
- QString var1 = printParam(&node.params[0], metaData, path, length, track);
+ QString var1 = printParam(&node.params[0], info, trackIndex);
if(!var1.isEmpty())
out.append("1");
else
{
- QString var2 = printParam(&node.params[1], metaData, path, length, track);
+ QString var2 = printParam(&node.params[1], info, trackIndex);
if(!var2.isEmpty())
out.append("1");
}
}
else if(node.command == Node::DIR_FUNCTION)
{
- out.append(path->section('/', -node.params[0].number - 2, -node.params[0].number - 2));
+ out.append(info->path().section('/', -node.params[0].number - 2, -node.params[0].number - 2));
}
}
return out;
}
-QString MetaDataFormatter::printParam(MetaDataFormatter::Param *p, const QMap<Qmmp::MetaData, QString> *metaData,
- const QString *path, qint64 length, int track) const
+QString MetaDataFormatter::printParam(MetaDataFormatter::Param *p, const TrackInfo *info, int trackIndex) const
{
switch (p->type)
{
case Param::FIELD:
- return printField(p->field, metaData, path, length, track);
+ return printField(p->field, info, trackIndex);
break;
case Param::TEXT:
return p->text;
break;
case Param::NODES:
- return evalute(&p->children, metaData, path, length, track);
+ return evalute(&p->children, info, trackIndex);
break;
default:
break;
@@ -466,46 +459,45 @@ QString MetaDataFormatter::printParam(MetaDataFormatter::Param *p, const QMap<Qm
return QString();
}
-QString MetaDataFormatter::printField(int field, const QMap<Qmmp::MetaData, QString> *metaData,
- const QString *path, qint64 length, int track) const
+QString MetaDataFormatter::printField(int field, const TrackInfo *info, int trackIndex) const
{
if(field >= Qmmp::TITLE && field <= Qmmp::DISCNUMBER)
{
if(field == Qmmp::TITLE)
{
- QString title = metaData->value(Qmmp::TITLE);
+ QString title = info->value(Qmmp::TITLE);
if(title.isEmpty()) //using file name if title is empty
{
- title = path->section('/',-1);
+ title = info->path().section('/',-1);
title = title.left(title.lastIndexOf('.'));
}
if(title.isEmpty()) //using full path if file name is empty
- title = *path;
+ title = info->path();
return title;
}
- return metaData->value((Qmmp::MetaData) field);
+ return info->value((Qmmp::MetaData) field);
}
else if(field == Param::PATH)
{
- return *path;
+ return info->path();
}
else if(field == Param::TWO_DIGIT_TRACK)
{
- return QString("%1").arg(metaData->value(Qmmp::TRACK),2,'0');
+ return QString("%1").arg(info->value(Qmmp::TRACK),2,'0');
}
else if(field == Param::DURATION)
{
- return formatDuration(length);
+ return formatDuration(info->duration());
}
else if(field == Param::FILE_NAME)
{
- return path->section('/',-1);
+ return info->path().section('/',-1);
}
else if(field == Param::TRACK_INDEX)
{
- return QString::number(track + 1);
+ return QString::number(trackIndex + 1);
}
return QString();
}
diff --git a/src/qmmpui/metadataformatter.h b/src/qmmpui/metadataformatter.h
index 49e317be0..086989e72 100644
--- a/src/qmmpui/metadataformatter.h
+++ b/src/qmmpui/metadataformatter.h
@@ -71,18 +71,11 @@ public:
*/
QString format(const PlayListTrack *item) const;
/*!
- * Converts metadata to one string using template.
- * @param metaData Metadata array.
- * @param duration Duration in milliseconds seconds.
- * @param track Index of track.
- */
- QString format(const QMap<Qmmp::MetaData, QString> &metaData, const QString &path, qint64 duration = 0, int track = 0) const;
- /*!
* Converts metadata of \b TrackInfo pointer \b info to one string using template.
* \param info pointer to \b TrackInfo object.
* \param track Index of track.
*/
- QString format(const TrackInfo *info, int track = 0) const;
+ QString format(const TrackInfo &info, int trackIndex = 0) const;
/*!
* Returns formatted duration (example: 05:02:03).
* \param duration Duration in milliseconds.
@@ -140,9 +133,9 @@ private:
void parseText(QList<Node> *nodes, QString::const_iterator *i, QString::const_iterator end);
void parseEscape(QList<Node> *nodes, QString::const_iterator *i, QString::const_iterator end);
- QString evalute(const QList<Node> *nodes, const QMap<Qmmp::MetaData, QString> *metaData, const QString *path, qint64 length, int track) const;
- QString printParam(Param *p, const QMap<Qmmp::MetaData, QString> *metaData, const QString *path, qint64 length, int track) const;
- QString printField(int field, const QMap<Qmmp::MetaData, QString> *metaData, const QString *path, qint64 length, int track) const;
+ QString evalute(const QList<Node> *nodes, const TrackInfo *info, int trackIndex) const;
+ QString printParam(Param *p, const TrackInfo *info, int trackIndex) const;
+ QString printField(int field, const TrackInfo *info, int trackIndex) const;
QString dumpNode(Node node) const;