diff options
Diffstat (limited to 'src/qmmpui/metadataformatter2.h')
| -rw-r--r-- | src/qmmpui/metadataformatter2.h | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/src/qmmpui/metadataformatter2.h b/src/qmmpui/metadataformatter2.h deleted file mode 100644 index 1e5bf7538..000000000 --- a/src/qmmpui/metadataformatter2.h +++ /dev/null @@ -1,97 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2015 by Ilya Kotov * - * forkotov02@hotmail.ru * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - ***************************************************************************/ - -#ifndef METADATAFORMATTER2_H -#define METADATAFORMATTER2_H - -#include <QString> -#include <QMap> -#include <qmmpui/playlisttrack.h> -#include <qmmp/qmmp.h> - -/*! @brief The MetaDataFormatter formats metadata using templates. - * @author Ilya Kotov <forkotov02@hotmail.ru> - */ -class MetaDataFormatter2 -{ -public: - /*! - * Constructor. - * @param pattern Metadata template. - * Syntax: - * %p - artist, - * %a - album, - * %aa - album artist, - * %t - title, - * %n - track number, - * %NN - 2-digit track number, - * %g - genre, - * %c - comment, - * %C - composer, - * %D - disc number, - * %f - file name, - * %F - full path, - * %y - year, - * %l - duration, - * %if(A,B,C) or %if(A&B&C,D,E) - condition. - */ - MetaDataFormatter2(const QString &pattern = QString()); - - void setPattern(const QString &pattern); - - const QString pattern() const; - - /*! - * Converts metadata of item \b item to one string using template. - */ - QString format(const PlayListTrack *item); - /*! - * Converts metadata to one string using template. - * @param metaData Metadata array. - * @param length Length in seconds. - */ - QString format(const QMap<Qmmp::MetaData, QString> &metaData, qint64 length = 0); - /*! - * Returns formatted length (example: 05:02:03). - * \param length Length in seconds. - */ - QString formatLength(qint64 length) const; - -private: - struct Node; - struct Param; - - bool parseField(QList<Node> *nodes, QString::const_iterator *i, QString::const_iterator end); - bool parseIf(QList<Node> *nodes, QString::const_iterator *i, QString::const_iterator end); - void parseText(QList<Node> *nodes, QString::const_iterator *i, QString::const_iterator end); - - QString evalute(QList<Node> *nodes, const QMap<Qmmp::MetaData, QString> *metaData, qint64 length); - QString printParam(Param *p, const QMap<Qmmp::MetaData, QString> *metaData, qint64 length); - QString printField(int field, const QMap<Qmmp::MetaData, QString> *metaData, qint64 length); - - QString dumpNode(Node node); - - QList<MetaDataFormatter2::Node> compile(const QString &expr); - QString m_pattern; - QList<Node> m_nodes; - QMap<QString, int> m_fieldNames; -}; - -#endif // METADATAFORMATTER2_H |
