diff options
author | David Robillard <d@drobilla.net> | 2013-08-25 15:16:29 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2013-08-25 15:16:29 +0000 |
commit | 1a2dabffe961eb093846f8c8a8462468f740ad97 (patch) | |
tree | 985b92e224ad41759f607142e5b26af444080aa9 /src/plugin.c | |
parent | e4b658c47ac55539f7c8724a61ebb6940ae1cc5c (diff) | |
download | lilv-1a2dabffe961eb093846f8c8a8462468f740ad97.tar.gz lilv-1a2dabffe961eb093846f8c8a8462468f740ad97.tar.bz2 lilv-1a2dabffe961eb093846f8c8a8462468f740ad97.zip |
Support denoting latency ports with lv2:designation lv2:latency.
git-svn-id: http://svn.drobilla.net/lad/trunk/lilv@5157 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/plugin.c')
-rw-r--r-- | src/plugin.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/plugin.c b/src/plugin.c index 7e33495..8ec93ff 100644 --- a/src/plugin.c +++ b/src/plugin.c @@ -594,15 +594,21 @@ lilv_plugin_has_latency(const LilvPlugin* p) bool ret = false; FOREACH_MATCH(ports) { - const SordNode* port = sord_iter_get_node(ports, SORD_OBJECT); - SordIter* reports_latency = lilv_world_query_internal( + const SordNode* port = sord_iter_get_node(ports, SORD_OBJECT); + SordIter* prop = lilv_world_query_internal( p->world, port, p->world->uris.lv2_portProperty, p->world->uris.lv2_reportsLatency); - const bool end = sord_iter_end(reports_latency); - sord_iter_free(reports_latency); - if (!end) { + SordIter* des = lilv_world_query_internal( + p->world, + port, + p->world->uris.lv2_designation, + p->world->uris.lv2_latency); + const bool latent = !sord_iter_end(prop) || !sord_iter_end(des); + sord_iter_free(prop); + sord_iter_free(des); + if (latent) { ret = true; break; } |