summaryrefslogtreecommitdiff
path: root/libs/ardour/lv2_plugin.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-06-03 19:34:14 +0200
committerRobin Gareus <robin@gareus.org>2013-06-03 19:34:14 +0200
commitcc8dafad4f25de518375b9ab7aa404f6929f4bd9 (patch)
tree6933add7affb1b92e595e27d749f75f7a4db59fd /libs/ardour/lv2_plugin.cc
parent1ee8f5c2e4d3155dcdbd57cae05df8bccc9de5c1 (diff)
lilv-backwards compatible min buffer-size implementation
Diffstat (limited to 'libs/ardour/lv2_plugin.cc')
-rw-r--r--libs/ardour/lv2_plugin.cc14
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);