From e72c0b81a7a1fe569f698e2e7a21ce91f42e8f14 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Fri, 14 Aug 2015 18:12:05 +0200 Subject: [PATCH] don't even list LV2 plugins that cannot be used. --- libs/ardour/lv2_plugin.cc | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/libs/ardour/lv2_plugin.cc b/libs/ardour/lv2_plugin.cc index b533120ec2..a3283e8d36 100644 --- a/libs/ardour/lv2_plugin.cc +++ b/libs/ardour/lv2_plugin.cc @@ -424,7 +424,7 @@ LV2Plugin::init(const void* c_plugin, framecnt_t rate) if (lilv_plugin_has_feature(plugin, _world.lv2_inPlaceBroken)) { error << string_compose( - _("LV2: \"%1\" cannot be used, since it cannot do inplace processing"), + _("LV2: \"%1\" cannot be used, since it cannot do inplace processing."), lilv_node_as_string(_impl->name)) << endmsg; lilv_node_free(_impl->name); lilv_node_free(_impl->author); @@ -2381,7 +2381,6 @@ LV2World::LV2World() units_db = lilv_new_uri(world, LV2_UNITS__db); patch_writable = lilv_new_uri(world, LV2_PATCH__writable); patch_Message = lilv_new_uri(world, LV2_PATCH__Message); - bufz_powerOf2BlockLength = lilv_new_uri(world, LV2_BUF_SIZE__powerOf2BlockLength); bufz_fixedBlockLength = lilv_new_uri(world, LV2_BUF_SIZE__fixedBlockLength); @@ -2513,6 +2512,24 @@ LV2PluginInfo::discover() continue; } + if (lilv_plugin_has_feature(p, world.lv2_inPlaceBroken)) { + warning << string_compose( + _("Ignoring LV2 plugin \"%1\" since it cannot do inplace processing."), + lilv_node_as_string(name)) << endmsg; + lilv_node_free(name); + continue; + } + + if (lilv_plugin_has_feature(p, _world.bufz_powerOf2BlockLength) || + lilv_plugin_has_feature(p, world.bufz_fixedBlockLength) + ) { + warning << string_compose( + _("Ignoring LV2 plugin \"%1\" because its buffer-size requirements cannot be satisfied."), + lilv_node_as_string(name)) << endmsg; + lilv_node_free(name); + continue; + } + info->type = LV2; info->name = string(lilv_node_as_string(name)); -- 2.30.2