diff options
author | Robin Gareus <robin@gareus.org> | 2015-08-14 18:12:05 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2015-08-14 18:13:05 +0200 |
commit | e72c0b81a7a1fe569f698e2e7a21ce91f42e8f14 (patch) | |
tree | e02b2b5c96c6fd72d6cca9448fee9376c8131b52 /libs | |
parent | 4129b8865c6cc57ad922130c3784b0337df9d507 (diff) |
don't even list LV2 plugins that cannot be used.
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/lv2_plugin.cc | 21 |
1 files 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)); |