diff options
author | Robin Gareus <robin@gareus.org> | 2013-06-03 19:34:14 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2013-06-03 19:34:14 +0200 |
commit | cc8dafad4f25de518375b9ab7aa404f6929f4bd9 (patch) | |
tree | 6933add7affb1b92e595e27d749f75f7a4db59fd /libs/ardour/lv2_plugin.cc | |
parent | 1ee8f5c2e4d3155dcdbd57cae05df8bccc9de5c1 (diff) |
lilv-backwards compatible min buffer-size implementation
Diffstat (limited to 'libs/ardour/lv2_plugin.cc')
-rw-r--r-- | libs/ardour/lv2_plugin.cc | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/libs/ardour/lv2_plugin.cc b/libs/ardour/lv2_plugin.cc index 5e433c65b5..f7189be163 100644 --- a/libs/ardour/lv2_plugin.cc +++ b/libs/ardour/lv2_plugin.cc @@ -445,13 +445,12 @@ LV2Plugin::init(const void* c_plugin, framecnt_t rate) flags |= PORT_POSITION; } } -#ifdef HAVE_NEW_LV2 - LilvNode* min_size = lilv_port_get(_impl->plugin, port, _world.rsz_minimumSize); + LilvNodes* min_size_v = lilv_port_get_value(_impl->plugin, port, _world.rsz_minimumSize); + LilvNode* min_size = min_size_v ? lilv_nodes_get_first(min_size_v) : NULL; if (min_size && lilv_node_is_int(min_size)) { minimumSize = lilv_node_as_int(min_size); } - lilv_node_free(min_size); -#endif + lilv_nodes_free(min_size_v); lilv_nodes_free(buffer_types); lilv_nodes_free(atom_supports); } else { @@ -1437,13 +1436,12 @@ LV2Plugin::allocate_atom_event_buffers() if (lilv_port_is_a(p, port, _world.lv2_OutputPort)) { count_atom_out++; } -#ifdef HAVE_NEW_LV2 - LilvNode* min_size = lilv_port_get(_impl->plugin, port, _world.rsz_minimumSize); + LilvNodes* min_size_v = lilv_port_get_value(_impl->plugin, port, _world.rsz_minimumSize); + LilvNode* min_size = min_size_v ? lilv_nodes_get_first(min_size_v) : NULL; if (min_size && lilv_node_is_int(min_size)) { minimumSize = std::max(minimumSize, lilv_node_as_int(min_size)); } - lilv_node_free(min_size); -#endif + lilv_nodes_free(min_size_v); } lilv_nodes_free(buffer_types); lilv_nodes_free(atom_supports); |