summaryrefslogtreecommitdiffstats
path: root/src/lilv_internal.h
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-03-15 21:59:27 +0000
committerDavid Robillard <d@drobilla.net>2012-03-15 21:59:27 +0000
commite5657ab8d82a6b40c535526b29c4c0fe40b828a6 (patch)
tree98996863e0efbd243bedd22031c364a811692a3d /src/lilv_internal.h
parent441de5ce4490b85b9b5b329e3dcfc5f3b275077e (diff)
downloadlilv-e5657ab8d82a6b40c535526b29c4c0fe40b828a6.tar.gz
lilv-e5657ab8d82a6b40c535526b29c4c0fe40b828a6.tar.bz2
lilv-e5657ab8d82a6b40c535526b29c4c0fe40b828a6.zip
Implement new LV2 discovery API.
git-svn-id: http://svn.drobilla.net/lad/trunk/lilv@4062 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/lilv_internal.h')
-rw-r--r--src/lilv_internal.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/lilv_internal.h b/src/lilv_internal.h
index 2ebaa0c..a80bfdb 100644
--- a/src/lilv_internal.h
+++ b/src/lilv_internal.h
@@ -96,6 +96,17 @@ typedef struct {
} LilvDynManifest;
#endif
+typedef struct {
+ LilvWorld* world;
+ LilvNode* uri;
+ void* lib;
+ LV2_Descriptor_Function lv2_descriptor;
+#ifdef LILV_NEW_LV2
+ const LV2_Lib_Descriptor* desc;
+#endif
+ uint32_t refs;
+} LilvLib;
+
struct LilvPluginImpl {
LilvWorld* world;
LilvNode* plugin_uri;
@@ -119,6 +130,11 @@ struct LilvPluginClassImpl {
LilvNode* label;
};
+struct LilvInstancePimpl {
+ LilvWorld* world;
+ LilvLib* lib;
+};
+
typedef struct {
bool dyn_manifest;
bool filter_language;
@@ -134,6 +150,7 @@ struct LilvWorldImpl {
LilvSpec* specs;
LilvPlugins* plugins;
LilvNodes* loaded_files;
+ ZixTree* libs;
struct {
SordNode* dc_replaces;
SordNode* doap_name;
@@ -245,6 +262,15 @@ LilvPluginClass* lilv_plugin_class_new(LilvWorld* world,
void lilv_plugin_class_free(LilvPluginClass* plugin_class);
+LilvLib*
+lilv_lib_open(LilvWorld* world,
+ const LilvNode* uri,
+ const char* bundle_path,
+ const LV2_Feature*const* features);
+
+const LV2_Descriptor* lilv_lib_get_plugin(LilvLib* lib, uint32_t index);
+void lilv_lib_close(LilvLib* lib);
+
LilvNodes* lilv_nodes_new(void);
LilvPlugins* lilv_plugins_new(void);
LilvScalePoints* lilv_scale_points_new(void);