diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2010-02-21 22:04:02 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2010-02-21 22:04:02 +0000 |
| commit | c01a575b144b19c110d2c1eb178119dadd4010b5 (patch) | |
| tree | e270f75755257962c50d0436c9b7271814216ed7 | |
| parent | 05398dffc2b442e83117e4efed89d9c02f52842e (diff) | |
| download | qmmp-c01a575b144b19c110d2c1eb178119dadd4010b5.tar.gz qmmp-c01a575b144b19c110d2c1eb178119dadd4010b5.tar.bz2 qmmp-c01a575b144b19c110d2c1eb178119dadd4010b5.zip | |
added cache for cover paths
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1564 90c681e8-e032-0410-971d-27865f9a5e38
| -rw-r--r-- | src/qmmp/metadatamanager.cpp | 12 | ||||
| -rw-r--r-- | src/qmmp/metadatamanager.h | 7 |
2 files changed, 12 insertions, 7 deletions
diff --git a/src/qmmp/metadatamanager.cpp b/src/qmmp/metadatamanager.cpp index bcc7619cc..1c3653928 100644 --- a/src/qmmp/metadatamanager.cpp +++ b/src/qmmp/metadatamanager.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2009 by Ilya Kotov * + * Copyright (C) 2009-2010 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -184,7 +184,7 @@ bool MetaDataManager::supports(const QString &fileName) const return FALSE; } -QPixmap MetaDataManager::getCover(const QString &url) const +QPixmap MetaDataManager::getCover(const QString &url) { if(!url.contains("://") && m_settings->useCoverFiles()) { @@ -202,7 +202,7 @@ QPixmap MetaDataManager::getCover(const QString &url) const return QPixmap(); } -QString MetaDataManager::getCoverPath(const QString &url) const +QString MetaDataManager::getCoverPath(const QString &url) { if(!m_settings->useCoverFiles()) return QString(); @@ -219,8 +219,12 @@ QString MetaDataManager::getCoverPath(const QString &url) const else //local file { QString p = QFileInfo(url).absolutePath(); + if(m_cover_cache.keys().contains(p)) + return m_cover_cache.value(p); QFileInfoList l = findCoverFiles(p, m_settings->coverSearchDepth()); - return l.isEmpty() ? QString() : l.at(0).filePath(); + QString cover_path = l.isEmpty() ? QString() : l.at(0).filePath(); + m_cover_cache.insert (p, cover_path); + return cover_path; } return QString(); } diff --git a/src/qmmp/metadatamanager.h b/src/qmmp/metadatamanager.h index 30570d28b..c08bac2e8 100644 --- a/src/qmmp/metadatamanager.h +++ b/src/qmmp/metadatamanager.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2009 by Ilya Kotov * + * Copyright (C) 2009-2010 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -74,13 +74,13 @@ public: * Returns cover pixmap for the given file \b fileName, * or returns an empty pixmap if cover is not available. */ - QPixmap getCover(const QString &fileName) const; + QPixmap getCover(const QString &fileName); /*! * Returns cover file path for the given file \b fileName, or returns * an empty string if cover file is not available. This function does not work * with embedded covers. */ - QString getCoverPath(const QString &fileName) const; + QString getCoverPath(const QString &fileName); /*! * Returns a pointer to the MetaDataManager instance. */ @@ -92,6 +92,7 @@ private: QList <DecoderFactory *> *m_decoderFactories; QList <EngineFactory *> *m_engineFactories; QList <InputSourceFactory *> *m_inputSourceFactories; + QMap <QString, QString> m_cover_cache; QmmpSettings *m_settings; static MetaDataManager* m_instance; }; |
