X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fcoverfinder.cpp;fp=src%2Fcoverfinder.cpp;h=d52c9d9131cfac0913447c33cbb0bfb29595cd58;hb=124ea2784ef15293b90e42fc3f04021f1f9e181e;hp=b906cc19629855dfbf56d005bb740af065f47955;hpb=9171ce8d32ef99f598ec1c1eefed07e13616e54c;p=someplayer diff --git a/src/coverfinder.cpp b/src/coverfinder.cpp index b906cc1..d52c9d9 100644 --- a/src/coverfinder.cpp +++ b/src/coverfinder.cpp @@ -22,6 +22,9 @@ #include #include #include +#include +#include +#include CoverFinder::CoverFinder(QObject *parent) : QObject(parent) @@ -29,7 +32,7 @@ CoverFinder::CoverFinder(QObject *parent) : _defaultCover = QImage(":/images/defaultcover.png"); SUFFIXES << "png" << "jpg" << "jpeg" << "bmp" << "gif"; NAMES << "cover" << "folder" << "album"; - DIRS << "cover" << "folder" << ".cover" << ".folder" << ".mediaartlocal"; + DIRS << "cover" << "folder" << ".cover" << ".folder"; } bool CoverFinder::find(QString path) { @@ -67,3 +70,24 @@ bool CoverFinder::find(QString path) { QImage &CoverFinder::defaultCover() { return _defaultCover; } + +bool CoverFinder::extract(QString file) { + QFileInfo info(file); + QString suffix = info.suffix().toLower(); + TagLib::ID3v2::Tag *tag = NULL; + if (suffix == "mp3") { + TagLib::MPEG::File f(QFile::encodeName(file).data()); + tag = f.ID3v2Tag(); + if (f.isValid() && tag != NULL) { + TagLib::ID3v2::FrameList l = tag->frameList("APIC"); + if (l.isEmpty()) + return false; + TagLib::ID3v2::AttachedPictureFrame *pic = static_cast(l.front()); + QImage img; + img.loadFromData((const uchar *) pic->picture().data(), pic->picture().size()); + emit found(img); + return true; + } + } + return false; +}