| 1201 | } |
| 1202 | |
| 1203 | void PluginManager::ClearEffectPlugins() |
| 1204 | { |
| 1205 | mEffectPluginsCleared.clear(); |
| 1206 | |
| 1207 | for ( auto it = mRegisteredPlugins.cbegin(); it != mRegisteredPlugins.cend(); ) |
| 1208 | { |
| 1209 | const auto& desc = it->second; |
| 1210 | const auto type = desc.GetPluginType(); |
| 1211 | |
| 1212 | if (type == PluginTypeEffect || type == PluginTypeStub) |
| 1213 | { |
| 1214 | mEffectPluginsCleared.push_back(desc); |
| 1215 | it = mRegisteredPlugins.erase(it); |
| 1216 | } |
| 1217 | else |
| 1218 | { |
| 1219 | ++it; |
| 1220 | } |
| 1221 | } |
| 1222 | |
| 1223 | // Repeat what usually happens at startup |
| 1224 | // This prevents built-in plugins to appear in the plugin validation list |
| 1225 | for (auto& [_, provider] : ModuleManager::Get().Providers()) |
| 1226 | provider->AutoRegisterPlugins(*this); |
| 1227 | |
| 1228 | // Remove auto registered plugins from "cleared" list |
| 1229 | for ( auto it = mEffectPluginsCleared.begin(); it != mEffectPluginsCleared.end(); ) |
| 1230 | { |
| 1231 | if ( mRegisteredPlugins.find(it->GetID()) != mRegisteredPlugins.end() ) |
| 1232 | it = mEffectPluginsCleared.erase(it); |
| 1233 | else |
| 1234 | ++it; |
| 1235 | } |
| 1236 | } |
| 1237 | |
| 1238 | std::map<wxString, std::vector<wxString>> PluginManager::CheckPluginUpdates() |
| 1239 | { |