Qmmp
Loading...
Searching...
No Matches
cueparser.h
1/***************************************************************************
2 * Copyright (C) 2008-2022 by Ilya Kotov *
3 * forkotov02@ya.ru *
4 * *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) any later version. *
9 * *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
14 * *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program; if not, write to the *
17 * Free Software Foundation, Inc., *
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
19 ***************************************************************************/
20#ifndef CUEPARSER_H
21#define CUEPARSER_H
22
23#include <QByteArray>
24#include <QString>
25#include <QList>
26#include <QStringList>
27#include <QTextCodec>
28#include "trackinfo.h"
29#include "qmmp_export.h"
30
34class QMMP_EXPORT CueParser
35{
36public:
46 CueParser(const QByteArray &data, const QByteArray &codecName = QByteArray());
56 void loadData(const QByteArray &data, const QByteArray &codecName = QByteArray());
62 void loadData(const QByteArray &data, QTextCodec *codec);
67 QList<TrackInfo *> createPlayList(int track = -1) const;
71 const QStringList &files() const;
75 qint64 offset(int track) const;
79 qint64 duration(int track) const;
83 QString file(int track) const;
87 QString url(int track) const;
91 int count() const;
95 bool isEmpty() const;
99 const TrackInfo *info(int track) const;
105 void setDuration(const QString &file, qint64 duration);
110 void setDuration(qint64 duration);
116 void setProperties(const QString &file, const QMap<Qmmp::TrackProperty, QString> &properties);
121 void setProperties(const QMap<Qmmp::TrackProperty, QString> &properties);
128 void setMetaData(int track, Qmmp::MetaData key, const QVariant &value);
135 void setUrl(const QString &scheme, const QString &path);
139 void clear();
140
141private:
142 struct CUETrack
143 {
144 TrackInfo info;
145 QString file;
146 qint64 offset = 0;
147 };
148 QList<CUETrack *> m_tracks;
149 QStringList m_files;
150 QStringList splitLine(const QString &line);
151 qint64 getLength(const QString &str);
152};
153
154#endif // CUEPARSER_H
The CueParser class provides CUE parser.
Definition cueparser.h:35
QString file(int track) const
void setProperties(const QMap< Qmmp::TrackProperty, QString > &properties)
int count() const
void setDuration(const QString &file, qint64 duration)
qint64 offset(int track) const
QString url(int track) const
qint64 duration(int track) const
void setUrl(const QString &scheme, const QString &path)
const TrackInfo * info(int track) const
CueParser(const QByteArray &data, const QByteArray &codecName=QByteArray())
void setProperties(const QString &file, const QMap< Qmmp::TrackProperty, QString > &properties)
void setMetaData(int track, Qmmp::MetaData key, const QVariant &value)
void loadData(const QByteArray &data, QTextCodec *codec)
const QStringList & files() const
QList< TrackInfo * > createPlayList(int track=-1) const
void clear()
bool isEmpty() const
void loadData(const QByteArray &data, const QByteArray &codecName=QByteArray())
void setDuration(qint64 duration)
MetaData
Definition qmmp.h:74
The TrackInfo class stores metadata and other information about track.
Definition trackinfo.h:32