aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-05-12 13:37:06 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-05-12 13:37:06 +0000
commit5133e60f55d8d972d66fa5629d952daebf679cad (patch)
treeb53b0cf470eca7211121f6bf91959469baed446a
parent530eeeef8400ca45f3c40d9edbbd73e7bba3a6c9 (diff)
downloadqmmp-5133e60f55d8d972d66fa5629d952daebf679cad.tar.gz
qmmp-5133e60f55d8d972d66fa5629d952daebf679cad.tar.bz2
qmmp-5133e60f55d8d972d66fa5629d952daebf679cad.zip
do not load disabled decoders if possiple
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3451 90c681e8-e032-0410-971d-27865f9a5e38
-rw-r--r--src/plugins/General/mpris/mpris2/root2object.cpp2
-rw-r--r--src/qmmp/decoder.cpp12
-rw-r--r--src/qmmp/decoder.h4
-rw-r--r--src/qmmp/metadatamanager.cpp6
4 files changed, 20 insertions, 4 deletions
diff --git a/src/plugins/General/mpris/mpris2/root2object.cpp b/src/plugins/General/mpris/mpris2/root2object.cpp
index 126a81391..6faf180e6 100644
--- a/src/plugins/General/mpris/mpris2/root2object.cpp
+++ b/src/plugins/General/mpris/mpris2/root2object.cpp
@@ -64,7 +64,7 @@ QString Root2Object::identity() const
QStringList Root2Object::supportedMimeTypes() const
{
QStringList mimeTypes;
- foreach(DecoderFactory *factory, Decoder::factories())
+ foreach(DecoderFactory *factory, Decoder::enabledFactories())
mimeTypes << factory->properties().contentTypes;
foreach(EngineFactory *factory, *AbstractEngine::factories())
mimeTypes << factory->properties().contentTypes;
diff --git a/src/qmmp/decoder.cpp b/src/qmmp/decoder.cpp
index 2539b9e33..26a4d740a 100644
--- a/src/qmmp/decoder.cpp
+++ b/src/qmmp/decoder.cpp
@@ -283,3 +283,15 @@ QList<DecoderFactory *> Decoder::factories()
}
return list;
}
+
+QList<DecoderFactory *> Decoder::enabledFactories()
+{
+ loadPlugins();
+ QList<DecoderFactory *> list;
+ foreach (QmmpPluginCache *item, *m_cache)
+ {
+ if(!m_disabledNames.contains(item->shortName()) && item->decoderFactory())
+ list.append(item->decoderFactory());
+ }
+ return list;
+}
diff --git a/src/qmmp/decoder.h b/src/qmmp/decoder.h
index 1af07a5c6..4d586fc13 100644
--- a/src/qmmp/decoder.h
+++ b/src/qmmp/decoder.h
@@ -131,6 +131,10 @@ public:
*/
static QList<DecoderFactory*> factories();
/*!
+ * Returns a list of enabled decoder factories.
+ */
+ static QList<DecoderFactory*> enabledFactories();
+ /*!
* Returns plugin file path.
* @param factory Decoder plugin factory.
*/
diff --git a/src/qmmp/metadatamanager.cpp b/src/qmmp/metadatamanager.cpp
index f0cc7d88c..87f4625a2 100644
--- a/src/qmmp/metadatamanager.cpp
+++ b/src/qmmp/metadatamanager.cpp
@@ -115,9 +115,9 @@ MetaDataModel* MetaDataManager::createMetaDataModel(const QString &path, QObject
QStringList MetaDataManager::filters() const
{
QStringList filters;
- foreach(DecoderFactory *fact, Decoder::factories())
+ foreach(DecoderFactory *fact, Decoder::enabledFactories())
{
- if (Decoder::isEnabled(fact) && !fact->properties().filters.isEmpty())
+ if (!fact->properties().filters.isEmpty())
filters << fact->properties().description + " (" + fact->properties().filters.join(" ") + ")";
}
foreach(EngineFactory *fact, *AbstractEngine::factories())
@@ -131,7 +131,7 @@ QStringList MetaDataManager::filters() const
QStringList MetaDataManager::nameFilters() const
{
QStringList filters;
- foreach(DecoderFactory *fact, Decoder::factories())
+ foreach(DecoderFactory *fact, Decoder::enabledFactories())
{
if (Decoder::isEnabled(fact))
filters << fact->properties().filters;