summaryrefslogtreecommitdiffstats
path: root/ingen
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-12-21 22:41:43 +0000
committerDavid Robillard <d@drobilla.net>2012-12-21 22:41:43 +0000
commit26d7e8e9399ef49a37463188cd2f841537c9bb4d (patch)
treef45d1c27964d172ca547abb7a9b933407b2ee7be /ingen
parent3a1eb6f291e555a25d2be69a540d0f8d4317c4f2 (diff)
downloadingen-26d7e8e9399ef49a37463188cd2f841537c9bb4d.tar.gz
ingen-26d7e8e9399ef49a37463188cd2f841537c9bb4d.tar.bz2
ingen-26d7e8e9399ef49a37463188cd2f841537c9bb4d.zip
Gracefully ignore plugins which require unsupported features or have unknown port types.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4882 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'ingen')
-rw-r--r--ingen/LV2Features.hpp3
-rw-r--r--ingen/URIMap.hpp2
2 files changed, 5 insertions, 0 deletions
diff --git a/ingen/LV2Features.hpp b/ingen/LV2Features.hpp
index 80339c84..214d62bb 100644
--- a/ingen/LV2Features.hpp
+++ b/ingen/LV2Features.hpp
@@ -40,6 +40,8 @@ public:
public:
virtual ~Feature() {}
+ virtual const char* uri() const = 0;
+
virtual SharedPtr<LV2_Feature> feature(World* world,
Node* block) = 0;
};
@@ -60,6 +62,7 @@ public:
};
void add_feature(SharedPtr<Feature> feature);
+ bool is_supported(const std::string& uri) const;
SharedPtr<FeatureArray> lv2_features(World* world,
Node* block) const;
diff --git a/ingen/URIMap.hpp b/ingen/URIMap.hpp
index 5f3aca63..e5ca71e3 100644
--- a/ingen/URIMap.hpp
+++ b/ingen/URIMap.hpp
@@ -46,6 +46,8 @@ public:
_feature.data = data;
}
+ const char* uri() const { return _feature.URI; }
+
SharedPtr<LV2_Feature> feature(World*, Node*) {
return SharedPtr<LV2_Feature>(&_feature, NullDeleter<LV2_Feature>);
}