00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef METADATAMANAGER_H
00022 #define METADATAMANAGER_H
00023
00024 #include <QList>
00025 #include <QStringList>
00026 #include <QPixmap>
00027 #include <QDir>
00028 #include <QMutex>
00029 #include "fileinfo.h"
00030 #include "metadatamodel.h"
00031
00032 class DecoderFactory;
00033 class EngineFactory;
00034 class InputSourceFactory;
00035 class QmmpSettings;
00036
00037
00041 class MetaDataManager
00042 {
00043 public:
00047 MetaDataManager();
00051 ~MetaDataManager();
00058 QList <FileInfo *> createPlayList(const QString &path, bool useMetaData = true) const;
00065 MetaDataModel* createMetaDataModel(const QString &url, QObject *parent = 0) const;
00069 QStringList filters() const;
00073 QStringList nameFilters() const;
00077 QStringList protocols() const;
00081 bool supports(const QString &file) const;
00086 QPixmap getCover(const QString &fileName);
00092 QString getCoverPath(const QString &fileName);
00096 void clearCoverChache();
00100 static MetaDataManager* instance();
00104 static void destroy();
00105
00106 private:
00107 QFileInfoList findCoverFiles(QDir dir, int depth) const;
00108 QMap <QString, QString> m_cover_cache;
00109 QmmpSettings *m_settings;
00110 mutable QMutex m_mutex;
00111 static MetaDataManager* m_instance;
00112 };
00113
00114 #endif // METADATAMANAGER_H