diff options
Diffstat (limited to 'src/plugins/Effect/ladspa/ladspahost.cpp')
| -rw-r--r-- | src/plugins/Effect/ladspa/ladspahost.cpp | 29 |
1 files changed, 11 insertions, 18 deletions
diff --git a/src/plugins/Effect/ladspa/ladspahost.cpp b/src/plugins/Effect/ladspa/ladspahost.cpp index 0a15b1875..15fe49815 100644 --- a/src/plugins/Effect/ladspa/ladspahost.cpp +++ b/src/plugins/Effect/ladspa/ladspahost.cpp @@ -1,7 +1,7 @@ /*************************************************************************** * Copyright (C) 2002-2003 Nick Lamb <njl195@zepler.org.uk> * * Copyright (C) 2005 Giacomo Lozito <city_hunter@users.sf.net> * - * Copyright (C) 2009-2020 by Ilya Kotov <forkotov02@ya.ru> * + * Copyright (C) 2009-2020 by Ilya Kotov <forkotov02@ya.ru> * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -27,6 +27,7 @@ #include <math.h> #include <stdlib.h> #include <dlfcn.h> +#include <algorithm> #include <qmmp/qmmp.h> #include <qmmp/audioparameters.h> #include "ladspahost.h" @@ -45,26 +46,18 @@ LADSPAHost::LADSPAHost(QObject *parent) : QObject(parent) loadModules(); QSettings settings(Qmmp::configFile(), QSettings::IniFormat); - int p = settings.value("LADSPA/plugins_number", 0).toInt(); - for(int i = 0; i < p; ++i) + int pluginNumber = settings.value("LADSPA/plugin_number", 0).toInt(); + for(int i = 0; i < pluginNumber; ++i) { QString section = QString("LADSPA_%1/").arg(i); settings.beginGroup(section); int id = settings.value("id").toInt(); - - LADSPAPlugin *plugin = nullptr; - for(LADSPAPlugin *p : plugins()) - { - if(p->unique_id == id) - { - plugin = p; - break; - } - } - if(!plugin) + auto it = std::find_if(m_plugins.cbegin(), m_plugins.cend(), [id](LADSPAPlugin *p){ return p->unique_id = id; }); + if(it == m_plugins.cend()) continue; + LADSPAPlugin *plugin = *it; LADSPAEffect *effect = createEffect(plugin); for(LADSPAControl *c : qAsConst(effect->controls)) c->value = settings.value(QString("port%1").arg(c->port), c->value).toFloat(); @@ -78,11 +71,11 @@ LADSPAHost::~LADSPAHost() { m_instance = nullptr; QSettings settings(Qmmp::configFile(), QSettings::IniFormat); - for(int i = 0; i < settings.value("LADSPA/plugins_number", 0).toInt(); ++i) + for(int i = 0; i < settings.value("LADSPA/plugin_number", 0).toInt(); ++i) { settings.remove(QString("LADSPA_%1/").arg(i)); } - settings.setValue("LADSPA/plugins_number", m_effects.count()); + settings.setValue("LADSPA/plugin_number", m_effects.count()); for(int i = 0; i < m_effects.count(); ++i) { QString section = QString("LADSPA_%1/").arg(i); @@ -388,12 +381,12 @@ void LADSPAHost::deactivateEffect(LADSPAEffect *e) e->handles.clear(); } -QList <LADSPAPlugin *> LADSPAHost::plugins() +const QList<LADSPAPlugin *> &LADSPAHost::plugins() const { return m_plugins; } -QList <LADSPAEffect *> LADSPAHost::effects() +const QList <LADSPAEffect *> &LADSPAHost::effects() const { return m_effects; } |
