00001 #ifndef METADATAIMAGEDOWNLOAD_H
00002 #define METADATAIMAGEDOWNLOAD_H
00003
00004 #include <QString>
00005 #include <QStringList>
00006
00007 #include "mthread.h"
00008 #include "mythmetaexp.h"
00009 #include "metadatacommon.h"
00010
00011 typedef struct {
00012 QString title;
00013 QVariant data;
00014 QString url;
00015 } ThumbnailData;
00016
00017 class META_PUBLIC ImageDLEvent : public QEvent
00018 {
00019 public:
00020 ImageDLEvent(MetadataLookup *lookup) :
00021 QEvent(kEventType),
00022 item(lookup) {}
00023 ~ImageDLEvent() {}
00024
00025 MetadataLookup *item;
00026
00027 static Type kEventType;
00028 };
00029
00030 class META_PUBLIC ImageDLFailureEvent : public QEvent
00031 {
00032 public:
00033 ImageDLFailureEvent(MetadataLookup *lookup) :
00034 QEvent(kEventType),
00035 item(lookup) {}
00036 ~ImageDLFailureEvent() {}
00037
00038 MetadataLookup *item;
00039
00040 static Type kEventType;
00041 };
00042
00043 class META_PUBLIC ThumbnailDLEvent : public QEvent
00044 {
00045 public:
00046 ThumbnailDLEvent(ThumbnailData *data) :
00047 QEvent(kEventType),
00048 thumb(data) {}
00049 ~ThumbnailDLEvent() {}
00050
00051 ThumbnailData *thumb;
00052
00053 static Type kEventType;
00054 };
00055
00056 class META_PUBLIC MetadataImageDownload : public MThread
00057 {
00058 public:
00059
00060 MetadataImageDownload(QObject *parent);
00061 ~MetadataImageDownload();
00062
00063 void addThumb(QString title, QString url, QVariant data);
00064 void addDownloads(MetadataLookup *lookup);
00065 void cancel();
00066
00067 protected:
00068
00069 void run();
00070
00071 private:
00072
00073 ThumbnailData* moreThumbs();
00074 MetadataLookup* moreDownloads();
00075
00076 QObject *m_parent;
00077 QList<MetadataLookup*> m_downloadList;
00078 QList<ThumbnailData*> m_thumbnailList;
00079 QMutex m_mutex;
00080 };
00081
00082 META_PUBLIC QString getDownloadFilename(QString title, QString url);
00083 META_PUBLIC QString getDownloadFilename(VideoArtworkType type, MetadataLookup *lookup,
00084 QString url);
00085
00086 META_PUBLIC QString getLocalWritePath(MetadataType metadatatype, VideoArtworkType type);
00087 META_PUBLIC QString getStorageGroupURL(VideoArtworkType type, QString host);
00088 META_PUBLIC QString getLocalStorageGroupPath(VideoArtworkType type, QString host);
00089
00090 META_PUBLIC void cleanThumbnailCacheDir(void);
00091
00092 #endif