aboutsummaryrefslogtreecommitdiffstats
path: root/lv2/worker/worker.ttl
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2018-09-22 20:38:01 +0200
committerDavid Robillard <d@drobilla.net>2018-09-22 20:38:58 +0200
commit4db67120efca2d4c200d2e1ba5cf3d7b97cab97e (patch)
tree793630dd2a17b78d805dc4bc5cd50fbdd0ace3bd /lv2/worker/worker.ttl
parent160ecb9601c9687a1093e124e936dcbd78aef43c (diff)
downloadlv2-4db67120efca2d4c200d2e1ba5cf3d7b97cab97e.tar.xz
Install standard headers to simpler include paths
Diffstat (limited to 'lv2/worker/worker.ttl')
-rw-r--r--lv2/worker/worker.ttl53
1 files changed, 53 insertions, 0 deletions
diff --git a/lv2/worker/worker.ttl b/lv2/worker/worker.ttl
new file mode 100644
index 0000000..6b32742
--- /dev/null
+++ b/lv2/worker/worker.ttl
@@ -0,0 +1,53 @@
+@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix work: <http://lv2plug.in/ns/ext/worker#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+
+<http://lv2plug.in/ns/ext/worker>
+ a owl:Ontology ;
+ rdfs:seeAlso <worker.h> ,
+ <lv2-worker.doap.ttl> ;
+ lv2:documentation """
+<p>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.</p>
+
+<p>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.</p>
+""" .
+
+work:interface
+ a lv2:ExtensionData ;
+ lv2:documentation """
+<p>The work interface provided by a plugin, LV2_Worker_Interface.</p>
+<pre class="turtle-code">
+@prefix work: &lt;http://lv2plug.in/ns/ext/worker#&gt; .
+
+&lt;plugin&gt;
+ a lv2:Plugin ;
+ lv2:extensionData work:interface .
+</pre>
+""" .
+
+work:schedule
+ a lv2:Feature ;
+ lv2:documentation """
+<p>The work scheduling feature provided by a host, LV2_Worker_Schedule.</p>
+
+<p>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.</p> """ .