From a823158b46d854f0606568cc39fba820522078d2 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Sat, 17 Nov 2018 10:13:42 +0000 Subject: fixed feature to disable engine git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@8446 90c681e8-e032-0410-971d-27865f9a5e38 --- src/qmmp/abstractengine.cpp | 14 ++++++++++++-- src/qmmp/abstractengine.h | 5 +++-- src/qmmp/soundcore.cpp | 2 +- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/qmmp/abstractengine.cpp b/src/qmmp/abstractengine.cpp index cdc324bf7..fa21cfff0 100644 --- a/src/qmmp/abstractengine.cpp +++ b/src/qmmp/abstractengine.cpp @@ -87,6 +87,7 @@ AbstractEngine *AbstractEngine::create(InputSource *s, QObject *parent) if(!fact) continue; engine = fact->create(parent); //engine plugin + engine->setObjectName(item->shortName()); if(!engine->enqueue(s)) { engine->deleteLater(); @@ -138,7 +139,7 @@ EngineFactory *AbstractEngine::findByFilePath(const QString& source) return 0; } -void AbstractEngine::setEnabled(EngineFactory* factory, bool enable) +void AbstractEngine::setEnabled(EngineFactory *factory, bool enable) { loadPlugins(); if (!factories().contains(factory)) @@ -157,12 +158,21 @@ void AbstractEngine::setEnabled(EngineFactory* factory, bool enable) settings.setValue("Engine/disabled_plugins", m_disabledNames); } -bool AbstractEngine::isEnabled(EngineFactory* factory) +bool AbstractEngine::isEnabled(EngineFactory *factory) { loadPlugins(); return !m_disabledNames.contains(factory->properties().shortName); } +bool AbstractEngine::isEnabled(AbstractEngine *engine) +{ + if(engine->objectName().isEmpty()) //qmmp engine + return true; + + loadPlugins(); + return !m_disabledNames.contains(engine->objectName()); +} + QString AbstractEngine::file(EngineFactory *factory) { loadPlugins(); diff --git a/src/qmmp/abstractengine.h b/src/qmmp/abstractengine.h index 2b59527d9..603bc078a 100644 --- a/src/qmmp/abstractengine.h +++ b/src/qmmp/abstractengine.h @@ -100,12 +100,13 @@ public: * @param factory Engine plugin factory. * @param enable Plugin enable state (\b true - enable, \b false - disable) */ - static void setEnabled(EngineFactory* factory, bool enable = true); + static void setEnabled(EngineFactory *factory, bool enable = true); /*! * Returns \b true if engine is enabled, otherwise returns \b false * @param factory Engine plugin factory. */ - static bool isEnabled(EngineFactory* factory); + static bool isEnabled(EngineFactory *factory); + static bool isEnabled(AbstractEngine *engine); /*! * Returns plugin file path. * @param factory Engine plugin factory. diff --git a/src/qmmp/soundcore.cpp b/src/qmmp/soundcore.cpp index ccd930471..62c78c07d 100644 --- a/src/qmmp/soundcore.cpp +++ b/src/qmmp/soundcore.cpp @@ -295,7 +295,7 @@ void SoundCore::startNextSource() return; } } - else if(m_engine->enqueue(s)) + else if(AbstractEngine::isEnabled(m_engine) && m_engine->enqueue(s)) { if(state() == Qmmp::Stopped || state() == Qmmp::Buffering) { -- cgit v1.2.3-13-gbd6f