diff options
Diffstat (limited to 'src')
| -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); |
