Add plugin blacklist for buffersize<=32

This commit is contained in:
Johannes Lorenz
2023-09-22 23:38:57 +02:00
committed by Johannes Lorenz
parent 9c46370234
commit 61b612634d
5 changed files with 48 additions and 28 deletions

View File

@@ -30,6 +30,7 @@
#ifdef LMMS_HAVE_LV2
#include <map>
#include <string_view>
#include <vector>
#include "Lv2Manager.h"
@@ -78,7 +79,7 @@ private:
//! pointers to m_features, required for lilv_plugin_instantiate
std::vector<const LV2_Feature*> m_featurePointers;
//! features + data, ordered by URI
std::map<const char*, void*, Lv2Manager::CmpStr> m_featureByUri;
std::map<std::string_view, void*> m_featureByUri;
};

View File

@@ -31,6 +31,7 @@
#include <map>
#include <set>
#include <string_view>
#include <lilv/lilv.h>
#include "Lv2Basics.h"
@@ -120,15 +121,9 @@ public:
Iterator begin() { return m_lv2InfoMap.begin(); }
Iterator end() { return m_lv2InfoMap.end(); }
//! strcmp based key comparator for std::set and std::map
struct CmpStr
{
bool operator()(char const *a, char const *b) const;
};
UridMap& uridMap() { return m_uridMap; }
const Lv2UridCache& uridCache() const { return m_uridCache; }
const std::set<const char*, CmpStr>& supportedFeatureURIs() const
const std::set<std::string_view>& supportedFeatureURIs() const
{
return m_supportedFeatureURIs;
}
@@ -136,17 +131,21 @@ public:
AutoLilvNodes findNodes(const LilvNode *subject,
const LilvNode *predicate, const LilvNode *object);
static const std::set<const char*, Lv2Manager::CmpStr>& getPluginBlacklist()
static const std::set<std::string_view>& getPluginBlacklist()
{
return pluginBlacklist;
}
static const std::set<std::string_view>& getPluginBlacklistBuffersizeLessThan32()
{
return pluginBlacklistBuffersizeLessThan32;
}
private:
// general data
bool m_debug; //!< if set, debug output will be printed
LilvWorld* m_world;
Lv2InfoMap m_lv2InfoMap;
std::set<const char*, CmpStr> m_supportedFeatureURIs;
std::set<std::string_view> m_supportedFeatureURIs;
// feature data that are common for all Lv2Proc
UridMap m_uridMap;
@@ -155,7 +154,8 @@ private:
Lv2UridCache m_uridCache;
// static
static const std::set<const char*, Lv2Manager::CmpStr> pluginBlacklist;
static const std::set<std::string_view>
pluginBlacklist, pluginBlacklistBuffersizeLessThan32;
// functions
bool isSubclassOf(const LilvPluginClass *clvss, const char *uriStr);