summaryrefslogtreecommitdiffstats
path: root/slv2/plugin.h
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2008-01-12 17:58:12 +0000
committerDavid Robillard <d@drobilla.net>2008-01-12 17:58:12 +0000
commit98cc3bd853c47f6cd1cf02cf14e00413993fd6f5 (patch)
treefc31d4304b5a9bb4ba5df30704c3b773558359b1 /slv2/plugin.h
parent2ea341ef3313b189315367ad6beadc23eec227e3 (diff)
downloadlilv-98cc3bd853c47f6cd1cf02cf14e00413993fd6f5.tar.gz
lilv-98cc3bd853c47f6cd1cf02cf14e00413993fd6f5.tar.bz2
lilv-98cc3bd853c47f6cd1cf02cf14e00413993fd6f5.zip
Add plugin template interface (fast discovery of plugins with certain I/O
characteristics). git-svn-id: http://svn.drobilla.net/lad/slv2@1051 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'slv2/plugin.h')
-rw-r--r--slv2/plugin.h60
1 files changed, 59 insertions, 1 deletions
diff --git a/slv2/plugin.h b/slv2/plugin.h
index b7a436e..3a386fc 100644
--- a/slv2/plugin.h
+++ b/slv2/plugin.h
@@ -128,7 +128,6 @@ const char*
slv2_plugin_get_library_uri(SLV2Plugin plugin);
-
/** Get the name of \a plugin.
*
* This is guaranteed to return the untranslated name (the doap:name in the
@@ -250,6 +249,32 @@ uint32_t
slv2_plugin_get_num_ports(SLV2Plugin p);
+/** Get the "template" (port signature) of this plugin.
+ *
+ * The template is intended to be all the basic information a host might
+ * want to know about a plugin's inputs and outputs (e.g. to determine if the
+ * plugin is appropriate for a given situation). Using this function is much,
+ * much faster than using the individual functions repeatedly to get the same
+ * information (since each call results in a single query).
+ *
+ * Time = Query
+ */
+SLV2Template
+slv2_plugin_get_template(SLV2Plugin p);
+
+
+/** Get the number of ports on this plugin of a given direction and/or type.
+ *
+ * Use SLV2_PORT_DATA_TYPE_ANY and SLV2_PORT_DIRECTION_ANY for a wildcard.
+ *
+ * Time = O(1)
+ */
+uint32_t
+slv2_plugin_get_num_ports_of_type(SLV2Plugin p,
+ SLV2PortDirection dir,
+ SLV2PortDataType type);
+
+
/** Return whether or not the plugin introduces (and reports) latency.
*
* The index of the latency port can be found with slv2_plugin_get_latency_port
@@ -344,6 +369,39 @@ SLV2UIs
slv2_plugin_get_uis(SLV2Plugin plugin);
+/** Get the full name of the plugin's author.
+ *
+ * Returns NULL if author name is not present.
+ * Returned value must be freed by caller.
+ *
+ * Time = Query
+ */
+char*
+slv2_plugin_get_author_name(SLV2Plugin plugin);
+
+
+/** Get the email address of the plugin's author.
+ *
+ * Returns NULL if author email address is not present.
+ * Returned value must be freed by caller.
+ *
+ * Time = Query
+ */
+char*
+slv2_plugin_get_author_email(SLV2Plugin plugin);
+
+
+/** Get the email address of the plugin's author.
+ *
+ * Returns NULL if author homepage is not present.
+ * Returned value must be freed by caller.
+ *
+ * Time = Query
+ */
+char*
+slv2_plugin_get_author_homepage(SLV2Plugin plugin);
+
+
/** @} */
#ifdef __cplusplus