Version bump
[someplayer] / src / track.cpp
index 50f5315..294be55 100644 (file)
@@ -20,6 +20,8 @@
 #include "track.h"
 #include "tagresolver.h"
 #include <QFileInfo>
+#include <QCryptographicHash>
+#include <QDebug>
 
 using namespace SomePlayer::DataObjects;
 
@@ -91,6 +93,37 @@ Track &Track::operator =(const Track &track) {
 
 Track::~Track() {}
 
-bool Track::operator ==(const Track &track) {
+bool Track::operator ==(const Track &track) const {
        return _source == track._source;
 }
+
+bool Track::operator >= (const Track &track) const {
+       return (metadata().title().compare(track.metadata().title()) >= 0);
+}
+
+bool Track::operator < (const Track &track) const {
+       return (metadata().title().compare(track.metadata().title()) < 0);
+}
+
+QString Track::mediaArtLocal() {
+       QString album = _metadata.album();
+       if (album == _UNKNOWN_ALBUM_) {
+               return QString("no_mediaartlocal");
+       }
+       QRegExp rsb("\\[.*\\]");
+       QRegExp rfb("{.*}");
+       QRegExp rrb("\\(.*\\)");
+       QRegExp stripB("^[()_{}[]!@#$^&*+=|\\\\/\"'?<>~`\\s\\t]*");
+       QRegExp stripE("[()_{}[]!@#$^&*+=|\\\\/\"'?<>~`\\s\\t]*$");
+       album = album.replace(rsb, "");
+       album = album.replace(rfb, "");
+       album = album.replace(rrb, "");
+       album = album.replace(stripB, "");
+       album = album.replace(stripE, "");
+       album = album.replace("  ", " ");
+       album = album.replace("\t", " ");
+       album = album.toLower();
+       QByteArray first_hash = QCryptographicHash::hash(QString(" ").toUtf8(), QCryptographicHash::Md5).toHex();
+       QByteArray second_hash = QCryptographicHash::hash(QString(album).toUtf8(), QCryptographicHash::Md5).toHex();
+       return QString("album-%1-%2.jpeg").arg(first_hash.constData()).arg(second_hash.constData());
+}