diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2018-11-17 10:13:42 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2018-11-17 10:13:42 +0000 |
| commit | a823158b46d854f0606568cc39fba820522078d2 (patch) | |
| tree | 63cc01a7862cc4a3d3dd43e80b02d0dc18c036f1 | |
| parent | 53c5bab108cc11695a40de9f3cbf24fff2d619e1 (diff) | |
| download | qmmp-a823158b46d854f0606568cc39fba820522078d2.tar.gz qmmp-a823158b46d854f0606568cc39fba820522078d2.tar.bz2 qmmp-a823158b46d854f0606568cc39fba820522078d2.zip | |
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
| -rw-r--r-- | src/qmmp/abstractengine.cpp | 14 | ||||
| -rw-r--r-- | src/qmmp/abstractengine.h | 5 | ||||
| -rw-r--r-- | 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) { |
