aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2019-04-24 17:26:33 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2019-04-24 17:26:33 +0000
commit7253098d8eac878fe614752f89fec226aad74342 (patch)
treef8285605187396ceb83d16c7d47dda22a59651d4
parent7641e58d89d0985ca3fce6a810f0e7fd492ab5c6 (diff)
downloadqmmp-7253098d8eac878fe614752f89fec226aad74342.tar.gz
qmmp-7253098d8eac878fe614752f89fec226aad74342.tar.bz2
qmmp-7253098d8eac878fe614752f89fec226aad74342.zip
fixed cue parser api issues
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@8791 90c681e8-e032-0410-971d-27865f9a5e38
-rw-r--r--src/qmmp/cueparser.cpp44
-rw-r--r--src/qmmp/cueparser.h7
2 files changed, 23 insertions, 28 deletions
diff --git a/src/qmmp/cueparser.cpp b/src/qmmp/cueparser.cpp
index bc4907837..ace53dc54 100644
--- a/src/qmmp/cueparser.cpp
+++ b/src/qmmp/cueparser.cpp
@@ -23,6 +23,21 @@
CueParser::CueParser(const QByteArray &data, const QByteArray &codecName)
{
+ loadData(data, codecName);
+}
+
+CueParser::~CueParser()
+{
+ qDeleteAll(m_tracks);
+ m_tracks.clear();
+}
+
+void CueParser::loadData(const QByteArray &data, const QByteArray &codecName)
+{
+ qDeleteAll(m_tracks);
+ m_tracks.clear();
+ m_files.clear();
+
QString artist, album, genre, date, comment, file;
double album_peak = 0.0, album_gain = 0.0;
QTextStream textStream(data);
@@ -108,28 +123,7 @@ CueParser::CueParser(const QByteArray &data, const QByteArray &codecName)
}
}
if(m_tracks.isEmpty())
- {
qWarning("CueParser: invalid cue data");
- return;
- }
-
- /*QList<TrackInfo *> f_list = MetaDataManager::instance()->createPlayList(m_filePath, TrackInfo::Properties);
- if(!f_list.isEmpty())
- {
- //calculate last item length
- m_tracks.last()->info.setDuration(qMax(0LL, f_list.first()->duration() - m_tracks.last()->offset));
- //add properties
- foreach(CUETrack *cueTrack, m_tracks)
- cueTrack->info.setValues(f_list.first()->properties());
- qDeleteAll(f_list);
- f_list.clear();
- }*/
-}
-
-CueParser::~CueParser()
-{
- qDeleteAll(m_tracks);
- m_tracks.clear();
}
const QStringList &CueParser::files() const
@@ -157,7 +151,7 @@ qint64 CueParser::duration(int track) const
return m_tracks.at(track)->info.duration();
}
-const QString CueParser::file(int track) const
+QString CueParser::file(int track) const
{
if(track < 0 || track >= m_tracks.count())
{
@@ -167,12 +161,12 @@ const QString CueParser::file(int track) const
return m_tracks.at(track)->file;
}
-const QString CueParser::url(int track) const
+QString CueParser::url(int track) const
{
if(track < 0 || track >= m_tracks.count())
{
qWarning("CueParser: invalid track number: %d", track);
- return 0;
+ return QString();
}
return m_tracks.at(track)->info.path();
}
@@ -182,7 +176,7 @@ int CueParser::count() const
return m_tracks.count();
}
-const QMap<Qmmp::ReplayGainKey, double> CueParser::replayGain(int track) const
+QMap<Qmmp::ReplayGainKey, double> CueParser::replayGain(int track) const
{
if(track < 0 || track >= m_tracks.count())
{
diff --git a/src/qmmp/cueparser.h b/src/qmmp/cueparser.h
index 1d55f51dd..4da4e0a06 100644
--- a/src/qmmp/cueparser.h
+++ b/src/qmmp/cueparser.h
@@ -32,13 +32,14 @@ class QMMP_EXPORT CueParser
public:
CueParser(const QByteArray &data, const QByteArray &codecName = QByteArray());
~CueParser();
+ void loadData(const QByteArray &data, const QByteArray &codecName = QByteArray());
const QStringList &files() const;
qint64 offset(int track) const;
qint64 duration(int track) const;
- const QString file(int track) const;
- const QString url(int track) const;
+ QString file(int track) const;
+ QString url(int track) const;
int count() const;
- const QMap<Qmmp::ReplayGainKey, double> replayGain(int track) const;
+ QMap<Qmmp::ReplayGainKey, double> replayGain(int track) const;
void setDuration(const QString &file, qint64 duration);
void setDuration(qint64 duration);
void setProperties(const QString &file, const QMap<Qmmp::TrackProperty, QString> &properties);