path: root/lv2/worker/worker.meta.ttl
diff options
authorDavid Robillard <d@drobilla.net>2020-03-22 16:36:44 +0100
committerDavid Robillard <d@drobilla.net>2020-04-10 19:46:04 +0200
commit430284545345539c9ffb31df889debac1d3888b5 (patch)
treedc9bb1f32f0d6fe34a7339221389048e199f14a5 /lv2/worker/worker.meta.ttl
parentc4514483da1ab4f49148f9c4fe4ff5b559323217 (diff)
Move documentation to metadata files and convert it to Markdown
Diffstat (limited to 'lv2/worker/worker.meta.ttl')
1 files changed, 51 insertions, 2 deletions
diff --git a/lv2/worker/worker.meta.ttl b/lv2/worker/worker.meta.ttl
index f25c2c3..1ed077a 100644
--- a/lv2/worker/worker.meta.ttl
+++ b/lv2/worker/worker.meta.ttl
@@ -1,12 +1,14 @@
@prefix dcs: <http://ontologi.es/doap-changeset#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
+@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix work: <http://lv2plug.in/ns/ext/worker#> .
a doap:Project ;
doap:name "LV2 Worker" ;
- doap:shortdesc "Support for a non-realtime plugin worker method." ;
+ doap:shortdesc "Support for doing non-realtime work in plugins." ;
doap:created "2012-03-22" ;
doap:developer <http://drobilla.net/drobilla#me> ;
doap:release [
@@ -29,5 +31,52 @@
rdfs:label "Initial release."
- ] .
+ ] ;
+ lv2:documentation """
+This extension allows plugins to schedule work that must be performed in
+another thread. Plugins can use this interface to safely perform work that is
+not real-time safe, and receive the result in the run context. The details of
+threading are managed by the host, allowing plugins to be simple and portable
+while using resources more efficiently.
+This interface is designed to gracefully support single-threaded synchronous
+execution, which allows the same code to work with sample accuracy for offline
+rendering. For example, a sampler plugin may schedule a sample to be loaded
+from disk in another thread. During live execution, the host will call the
+plugin's work method from another thread, and deliver the result to the audio
+thread when it is finished. However, during offline export, the
+<q>scheduled</q> load would be executed immediately in the same thread. This
+enables reproducible offline rendering, where any changes affect the output
+immediately regardless of how long the work takes to execute.
+"""^^lv2:Markdown .
+ lv2:documentation """
+The work interface provided by a plugin, LV2_Worker_Interface.
+ :::turtle
+ @prefix work: &lt;http://lv2plug.in/ns/ext/worker#&gt; .
+ &lt;plugin&gt;
+ a lv2:Plugin ;
+ lv2:extensionData work:interface .
+"""^^lv2:Markdown .
+ lv2:documentation """
+The work scheduling feature provided by a host, LV2_Worker_Schedule.
+If the host passes this feature to LV2_Descriptor::instantiate, the plugin MAY
+use it to schedule work in the audio thread, and MUST NOT call it in any other
+context. Hosts MAY pass this feature to other functions as well, in which case
+the plugin MAY use it to schedule work in the calling context. The plugin MUST
+NOT assume any relationship between different schedule features.
+"""^^lv2:Markdown .