diff options
author | David Robillard <d@drobilla.net> | 2008-01-12 17:58:12 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2008-01-12 17:58:12 +0000 |
commit | 98cc3bd853c47f6cd1cf02cf14e00413993fd6f5 (patch) | |
tree | fc31d4304b5a9bb4ba5df30704c3b773558359b1 /slv2/plugin.h | |
parent | 2ea341ef3313b189315367ad6beadc23eec227e3 (diff) | |
download | lilv-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.h | 60 |
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 |