diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2019-04-24 17:26:33 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2019-04-24 17:26:33 +0000 |
| commit | 7253098d8eac878fe614752f89fec226aad74342 (patch) | |
| tree | f8285605187396ceb83d16c7d47dda22a59651d4 | |
| parent | 7641e58d89d0985ca3fce6a810f0e7fd492ab5c6 (diff) | |
| download | qmmp-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.cpp | 44 | ||||
| -rw-r--r-- | src/qmmp/cueparser.h | 7 |
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); |
