path: root/lv2/lv2plug.in/ns/ext/state/state.ttl
diff options
authorDavid Robillard <d@drobilla.net>2016-07-31 15:15:40 -0400
committerDavid Robillard <d@drobilla.net>2016-07-31 15:19:35 -0400
commitcb0fd14636a32785963474a8d9400ba9bd2ff1e2 (patch)
treea6012874ad932c41b3521a37539c7b0a241b6b74 /lv2/lv2plug.in/ns/ext/state/state.ttl
parent0bfaa3cfd32f06f1f14688ba5f4d4f15dc2e9633 (diff)
Add state:threadSafeRestore feature
Diffstat (limited to 'lv2/lv2plug.in/ns/ext/state/state.ttl')
1 files changed, 17 insertions, 0 deletions
diff --git a/lv2/lv2plug.in/ns/ext/state/state.ttl b/lv2/lv2plug.in/ns/ext/state/state.ttl
index 699ef45..a5b205e 100644
--- a/lv2/lv2plug.in/ns/ext/state/state.ttl
+++ b/lv2/lv2plug.in/ns/ext/state/state.ttl
@@ -347,3 +347,20 @@ char* save_myfile(LV2_State_Make_Path* make_path)
""" .
+ a lv2:Feature ;
+ rdfs:label "thread-safe restore" ;
+ lv2:documentation """
+<p>If a plugin supports this feature, its LV2_State_Interface::restore method
+is thread-safe and may be called concurrently with audio class functions.</p>
+<p>To support this feature, the host MUST pass a <a
+href="../worker/worker.html#schedule">work:schedule</a> feature to the restore
+method, which will be used to complete the state restoration. The usual
+mechanics of the worker apply: the host will call the plugin's work method,
+which emits a response which is later applied in the audio thread.</p>
+<p>The host is not required to block run() while restore() and work() load the
+state, so this feature allows state to be restored without dropouts.</p>
+""" .