diff options
| -rw-r--r-- | src/qmmp/decoder.cpp | 3 | ||||
| -rw-r--r-- | src/qmmp/fileinfo.cpp | 50 | ||||
| -rw-r--r-- | src/qmmp/fileinfo.h | 15 |
3 files changed, 41 insertions, 27 deletions
diff --git a/src/qmmp/decoder.cpp b/src/qmmp/decoder.cpp index c4404b739..25643e435 100644 --- a/src/qmmp/decoder.cpp +++ b/src/qmmp/decoder.cpp @@ -405,6 +405,9 @@ FileInfo *Decoder::createFileInfo(const QString &fileName) DecoderFactory *fact = Decoder::findByPath(fileName); if (fact && QFile::exists(fileName)) { + FileInfo *info = fact->createFileInfo(fileName); + if (info && info->url().isEmpty()) + info->setUrl(QUrl::fromLocalFile (fileName)); return fact->createFileInfo(fileName); } return 0; diff --git a/src/qmmp/fileinfo.cpp b/src/qmmp/fileinfo.cpp index 4cb0811ac..055cec343 100644 --- a/src/qmmp/fileinfo.cpp +++ b/src/qmmp/fileinfo.cpp @@ -22,45 +22,35 @@ FileInfo::FileInfo() { m_length = 0; + m_count = 1; } -/*FileInfo::FileInfo(const FileInfo &other) +FileInfo::FileInfo(const FileInfo &other) { *this = other; -}*/ +} FileInfo::~FileInfo() {} -/*void FileInfo::operator=(const FileInfo &tag) +void FileInfo::operator=(const FileInfo &info) { - setValue(TITLE,tag.title ()); - setValue(ARTIST,tag.artist ()); - setValue(ALBUM,tag.album ()); - setValue(COMMENT,tag.comment ()); - setValue(GENRE,tag.genre ()); - setValue(YEAR,tag.year ()); - setValue(TRACK,tag.track ()); - setValue(LENGTH,tag.length ()); + setLength(info.length()); + setMetaData(info.metaData()); + setUrl(info.url()); } -bool FileInfo::operator==(const FileInfo &tag) +bool FileInfo::operator==(const FileInfo &info) { - return title() == tag.title() && - artist() == tag.artist() && - album() == tag.album() && - comment() == tag.comment() && - genre() == tag.genre() && - year() == tag.year() && - track() == tag.track() && - length() == tag.length() && - isEmpty() == tag.isEmpty(); + return metaData () == info.metaData () && + length () == info.length (); + url() == info.url(); } -bool FileInfo::operator!=(const FileInfo &tag) +bool FileInfo::operator!=(const FileInfo &info) { - return !operator==(tag); -}*/ + return !operator==(info); +} const qint64 FileInfo::length () const { @@ -82,11 +72,16 @@ void FileInfo::setMetaData(const QMap<Qmmp::MetaData, QString> &metaData) m_metaData = metaData; } -bool FileInfo::isEmpty() +bool FileInfo::isEmpty() const { return m_metaData.isEmpty(); //TODO add correct test } +const QUrl FileInfo::url() const +{ + return m_url; +} + void FileInfo::setLength(qint64 length) { m_length = length; @@ -101,3 +96,8 @@ void FileInfo::setMetaData(Qmmp::MetaData key, int value) { m_metaData.insert(key, QString::number(value)); } + +void FileInfo::setUrl(const QUrl &url) +{ + m_url = url; +} diff --git a/src/qmmp/fileinfo.h b/src/qmmp/fileinfo.h index 367c34a5c..a2e70188e 100644 --- a/src/qmmp/fileinfo.h +++ b/src/qmmp/fileinfo.h @@ -22,6 +22,7 @@ #include <QString> #include <QMap> +#include <QUrl> #include "qmmp.h" @@ -32,23 +33,33 @@ class FileInfo { public: FileInfo(); - //FileInfo(const FileInfo &other); + FileInfo(const FileInfo &other); ~FileInfo(); + void operator=(const FileInfo &info); + bool operator==(const FileInfo &info); + bool operator!=(const FileInfo &info); + const qint64 length () const; const QString metaData (Qmmp::MetaData key) const; const QMap<Qmmp::MetaData, QString> metaData () const; - bool isEmpty(); + bool isEmpty() const; + const QUrl url() const; + int count(); void setLength(qint64 length); void setMetaData(Qmmp::MetaData key, const QString &value); void setMetaData(Qmmp::MetaData key, int value); void setMetaData(const QMap <Qmmp::MetaData, QString> &metaData); + void setUrl(const QUrl &url); private: QMap <Qmmp::MetaData, QString> m_metaData; qint64 m_length; + QUrl m_url; + int m_count; + QList<QMap<int, int> > map; }; #endif |
