summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2006-11-23 17:25:41 +0000
committerDavid Robillard <d@drobilla.net>2006-11-23 17:25:41 +0000
commit5bd8f204b559fcec5bc4caa409849c2599456683 (patch)
treefd3204db0e1ce89c3ca243266d53aa26aec8f8e5
parenta77b95f6c6d61751ff6fc2eb5ba603669167a0f9 (diff)
downloadlilv-5bd8f204b559fcec5bc4caa409849c2599456683.tar.gz
lilv-5bd8f204b559fcec5bc4caa409849c2599456683.tar.bz2
lilv-5bd8f204b559fcec5bc4caa409849c2599456683.zip
Clarified realtime requirements to include connect_port.
git-svn-id: http://svn.drobilla.net/lad/slv2@204 a436a847-0d15-0410-975c-d299462d15a1
-rw-r--r--data/lv2.ttl18
-rw-r--r--slv2/lv2.h12
2 files changed, 17 insertions, 13 deletions
diff --git a/data/lv2.ttl b/data/lv2.ttl
index 24a5f25..8862483 100644
--- a/data/lv2.ttl
+++ b/data/lv2.ttl
@@ -385,9 +385,9 @@ but also in a "hard real-time" environment. To qualify for this the plugin must
satisfy all of the following:
(1) The plugin must not use malloc(), free() or other heap memory
- management within its run() or run_adding() functions. All new
- memory used in run() must be managed via the stack. These
- restrictions only apply to the run() function.
+ management within its run() or connect_port() functions. All new
+ memory used in run() and connect_port() must be managed via the stack.
+ These restrictions only apply to the run() and connect_port() functions.
(2) The plugin will not attempt to make use of any library
functions with the exceptions of functions in the ANSI standard C
@@ -397,12 +397,12 @@ satisfy all of the following:
or any other mechanism that might result in process or thread
blocking.
- (4) The plugin will take an amount of time to execute a run() or
- run_adding() call approximately of form (A+B*SampleCount) where A
- and B depend on the machine and host in use. This amount of time
- may not depend on input signals or plugin state. The host is left
- the responsibility to perform timings to estimate upper bounds for
- A and B.
+ (4) The plugin will take an amount of time to execute a run() call
+ approximately of form (A+B*SampleCount) where A and B depend on the
+ machine and host in use. This amount of time may not depend on input
+ signals or plugin state. The host is left the responsibility to perform
+ timings to estimate upper bounds for A and B. The plugin will also take an
+ approximately constant amount of time to execute a connect_port() call.
""" .
:inplaceBroken a :PluginProperty ;
diff --git a/slv2/lv2.h b/slv2/lv2.h
index 53ab768..51cb61a 100644
--- a/slv2/lv2.h
+++ b/slv2/lv2.h
@@ -217,7 +217,11 @@ typedef struct _LV2_Descriptor {
* same buffer for more than one port and even use the same buffer for
* both input and output (see LV2_PROPERTY_INPLACE_BROKEN (FIXME)).
* However, overlapped buffers or use of a single buffer for both
- * audio and control data may result in unexpected behaviour. */
+ * audio and control data may result in unexpected behaviour.
+ *
+ * If the plugin has the property lv2:hardRTCapable then there are
+ * various things that the plugin MUST NOT do within the connect_port()
+ * function (see lv2.ttl). */
void (*connect_port)(LV2_Handle Instance,
uint32_t Port,
void * DataLocation);
@@ -257,9 +261,9 @@ typedef struct _LV2_Descriptor {
* the plugin instance may not be reused until activate() has been
* called again.
*
- * If the plugin has the property LV2_PROPERTY_HARD_RT_CAPABLE then
- * there are various things that the plugin MUST NOT do within the run()
- * function (see above). */
+ * If the plugin has the property lv2:hardRTCapable then there are
+ * various things that the plugin MUST NOT do within the run()
+ * function (see lv2.ttl). */
void (*run)(LV2_Handle Instance,
uint32_t SampleCount);