From 98cc3bd853c47f6cd1cf02cf14e00413993fd6f5 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sat, 12 Jan 2008 17:58:12 +0000 Subject: 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 --- src/slv2_internal.h | 40 +++++++++++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 9 deletions(-) (limited to 'src/slv2_internal.h') diff --git a/src/slv2_internal.h b/src/slv2_internal.h index 2f66670..07df8f5 100644 --- a/src/slv2_internal.h +++ b/src/slv2_internal.h @@ -58,14 +58,15 @@ void slv2_port_free(SLV2Port port); */ struct _SLV2Plugin { struct _SLV2World* world; - librdf_uri* plugin_uri; - librdf_uri* bundle_uri; ///< Bundle directory plugin was loaded from - librdf_uri* binary_uri; ///< lv2:binary - SLV2PluginClass plugin_class; - raptor_sequence* data_uris; ///< rdfs::seeAlso - raptor_sequence* ports; - librdf_storage* storage; - librdf_model* rdf; + librdf_uri* plugin_uri; + librdf_uri* bundle_uri; ///< Bundle directory plugin was loaded from + librdf_uri* binary_uri; ///< lv2:binary + SLV2PluginClass plugin_class; + SLV2Template templt; + raptor_sequence* data_uris; ///< rdfs::seeAlso + raptor_sequence* ports; + librdf_storage* storage; + librdf_model* rdf; }; SLV2Plugin slv2_plugin_new(SLV2World world, librdf_uri* uri, librdf_uri* bundle_uri, librdf_uri* binary_uri); @@ -191,7 +192,6 @@ void slv2_ui_free(SLV2UI ui); /* ********* Value ********* */ - typedef enum _SLV2ValueType { SLV2_VALUE_URI, SLV2_VALUE_STRING, @@ -212,6 +212,28 @@ SLV2Value slv2_value_new(SLV2ValueType type, const char* val); +/* ********* PortSignature ********* */ + +struct _SLV2PortSignature { + SLV2PortDirection direction; + SLV2PortDataType type; +}; + +SLV2PortSignature slv2_port_signature_new(SLV2PortDirection direction, + SLV2PortDataType type); + +void slv2_port_signature_free(SLV2PortSignature val); + + +/* ********* Template ********* */ + +SLV2Template slv2_template_new(); +void slv2_template_free(SLV2Template t); +void slv2_template_add_port(SLV2Template t); +void slv2_template_port_type(SLV2Template t, + uint32_t port_index, + const char* type_uri); + #ifdef __cplusplus } #endif -- cgit v1.2.1