diff options
author | David Robillard <d@drobilla.net> | 2007-04-21 01:23:59 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2007-04-21 01:23:59 +0000 |
commit | 081352a14c7c4f73113d9a491280e327eec14c83 (patch) | |
tree | 41887d3ffce2709a6d0fd7a9ea72a99f54186475 | |
parent | 09e5c017b096bc84bbbc0b273baffd221144213a (diff) | |
download | lilv-081352a14c7c4f73113d9a491280e327eec14c83.tar.gz lilv-081352a14c7c4f73113d9a491280e327eec14c83.tar.bz2 lilv-081352a14c7c4f73113d9a491280e327eec14c83.zip |
Changed "categories" to "plugin classes" to better match RDF.
Renamed files to match API.
git-svn-id: http://svn.drobilla.net/lad/slv2@466 a436a847-0d15-0410-975c-d299462d15a1
-rw-r--r-- | slv2/Makefile.am | 8 | ||||
-rw-r--r-- | slv2/plugin.h | 8 | ||||
-rw-r--r-- | slv2/pluginclass.h (renamed from slv2/category.h) | 30 | ||||
-rw-r--r-- | slv2/pluginclasses.h (renamed from slv2/categories.h) | 32 | ||||
-rw-r--r-- | slv2/plugins.h (renamed from slv2/pluginlist.h) | 6 | ||||
-rw-r--r-- | slv2/port.h | 2 | ||||
-rw-r--r-- | slv2/slv2.h | 6 | ||||
-rw-r--r-- | slv2/strings.h (renamed from slv2/stringlist.h) | 6 | ||||
-rw-r--r-- | slv2/types.h | 4 | ||||
-rw-r--r-- | slv2/world.h | 33 | ||||
-rw-r--r-- | src/Makefile.am | 8 | ||||
-rw-r--r-- | src/plugin.c | 33 | ||||
-rw-r--r-- | src/pluginclass.c (renamed from src/category.c) | 30 | ||||
-rw-r--r-- | src/pluginclasses.c (renamed from src/categories.c) | 30 | ||||
-rw-r--r-- | src/plugins.c (renamed from src/pluginlist.c) | 2 | ||||
-rw-r--r-- | src/private_types.h | 26 | ||||
-rw-r--r-- | src/query.c | 2 | ||||
-rw-r--r-- | src/strings.c (renamed from src/stringlist.c) | 2 | ||||
-rw-r--r-- | src/world.c | 39 | ||||
-rw-r--r-- | utils/lv2_inspect.c | 2 |
20 files changed, 177 insertions, 132 deletions
diff --git a/slv2/Makefile.am b/slv2/Makefile.am index 8e1b827..05fc432 100644 --- a/slv2/Makefile.am +++ b/slv2/Makefile.am @@ -5,12 +5,12 @@ slv2include_HEADERS = \ types.h \ slv2.h \ world.h \ - category.h \ - categories.h \ + pluginclass.h \ + pluginclasses.h \ plugin.h \ port.h \ - pluginlist.h \ + plugins.h \ plugininstance.h \ - stringlist.h \ + strings.h \ util.h diff --git a/slv2/plugin.h b/slv2/plugin.h index 4db5130..c8f4be0 100644 --- a/slv2/plugin.h +++ b/slv2/plugin.h @@ -27,7 +27,7 @@ extern "C" { #include <stdbool.h> #include <slv2/types.h> #include <slv2/port.h> -#include <slv2/stringlist.h> +#include <slv2/strings.h> /** \defgroup data Plugin data access * @@ -134,10 +134,10 @@ char* slv2_plugin_get_name(SLV2Plugin plugin); -/** Get the category this plugin belongs to. +/** Get the class this plugin belongs to (ie Filters). */ -SLV2Category -slv2_plugin_get_category(SLV2Plugin plugin); +SLV2PluginClass +slv2_plugin_get_class(SLV2Plugin plugin); /** Get a value associated with the plugin in a plugin's data files. diff --git a/slv2/category.h b/slv2/pluginclass.h index 1d0159f..1124bd8 100644 --- a/slv2/category.h +++ b/slv2/pluginclass.h @@ -16,8 +16,8 @@ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifndef __SLV2_CATEGORY_H__ -#define __SLV2_CATEGORY_H__ +#ifndef __SLV2_PLUGIN_CLASS_H__ +#define __SLV2_PLUGIN_CLASS_H__ #ifdef __cplusplus extern "C" { @@ -30,35 +30,35 @@ extern "C" { */ -/** Get the URI of this category. +/** Get the URI of this plugin class. * - * Returned value is owned by \a category and must not be freed by caller. + * Returned value is owned by \a plugin_class and must not be freed by caller. * * Time = O(1) */ -const char* slv2_category_get_uri(SLV2Category category); +const char* slv2_plugin_class_get_uri(SLV2PluginClass plugin_class); -/** Get the label of this category, ie "Oscillators". +/** Get the label of this plugin_class, ie "Oscillators". * - * Returned value is owned by \a category and must not be freed by caller. + * Returned value is owned by \a plugin_class and must not be freed by caller. * * Time = O(1) */ -const char* slv2_category_get_label(SLV2Category category); +const char* slv2_plugin_class_get_label(SLV2PluginClass plugin_class); #if 0 -/** Get the path of this category, ie "Plugins/Generators/Oscillators". +/** Get the path of this plugin_class, ie "Plugins/Generators/Oscillators". * - * SLV2 automatically generates an ideal category heirarchy given the plugins - * present. The last fragment of the path is the category's label, - * as returned by slv2_category_get_label. + * SLV2 automatically generates an ideal plugin_class heirarchy given the plugins + * present. The last fragment of the path is the plugin_class's label, + * as returned by slv2_plugin_class_get_label. * - * Returned value is owned by \a category and must not be freed by caller. + * Returned value is owned by \a plugin_class and must not be freed by caller. * * Time = O(1) */ -const char* slv2_category_get_path(SLV2Category category); +const char* slv2_plugin_class_get_path(SLV2PluginClass plugin_class); #endif /** @} */ @@ -67,4 +67,4 @@ const char* slv2_category_get_path(SLV2Category category); } #endif -#endif /* __SLV2_CATEGORY_H__ */ +#endif /* __SLV2_PLUGIN_CLASS_H__ */ diff --git a/slv2/categories.h b/slv2/pluginclasses.h index 44b9aee..39177b8 100644 --- a/slv2/categories.h +++ b/slv2/pluginclasses.h @@ -16,20 +16,20 @@ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifndef __SLV2_CATEGORIES_H__ -#define __SLV2_CATEGORIES_H__ +#ifndef __SLV2_PLUGIN_CLASSES_H__ +#define __SLV2_PLUGIN_CLASSES_H__ -#include <slv2/category.h> +#include <slv2/pluginclass.h> #ifdef __cplusplus extern "C" { #endif -typedef void* SLV2Categories; +typedef void* SLV2PluginClasses; -/** \defgroup categories Categories +/** \defgroup plugin_classes Plugin classes (categories) * * @{ */ @@ -37,10 +37,10 @@ typedef void* SLV2Categories; /** Get the number of plugins in the list. */ unsigned -slv2_categories_size(SLV2Categories list); +slv2_plugin_classes_size(SLV2PluginClasses list); -/** Get a category from the list by URI. +/** Get a plugin class from the list by URI. * * Return value is shared (stored in \a list) and must not be freed or * modified by the caller in any way. @@ -49,25 +49,25 @@ slv2_categories_size(SLV2Categories list); * * \return NULL if plugin with \a url not found in \a list. */ -SLV2Category -slv2_categories_get_by_uri(SLV2Categories list, - const char* uri); +SLV2PluginClass +slv2_plugin_classes_get_by_uri(SLV2PluginClasses list, + const char* uri); /** Get a plugin from the list by index. * * \a index has no significance other than as an index into this list. - * Any \a index not less than slv2_categories_get_length(list) will return NULL, - * so all categories in a list can be enumerated by repeated calls + * Any \a index not less than slv2_plugin_classes_get_length(list) will return NULL, + * so all plugin_classes in a list can be enumerated by repeated calls * to this function starting with \a index = 0. * * Time = O(1) * * \return NULL if \a index out of range. */ -SLV2Category -slv2_categories_get_at(SLV2Categories list, - unsigned index); +SLV2PluginClass +slv2_plugin_classes_get_at(SLV2PluginClasses list, + unsigned index); /** @} */ @@ -76,5 +76,5 @@ slv2_categories_get_at(SLV2Categories list, } #endif -#endif /* __SLV2_CATEGORIES_H__ */ +#endif /* __SLV2_PLUGIN_CLASSES_H__ */ diff --git a/slv2/pluginlist.h b/slv2/plugins.h index a2978e1..7b9a5a3 100644 --- a/slv2/pluginlist.h +++ b/slv2/plugins.h @@ -16,8 +16,8 @@ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifndef __SLV2_PLUGINLIST_H__ -#define __SLV2_PLUGINLIST_H__ +#ifndef __SLV2_PLUGINS_H__ +#define __SLV2_PLUGINS_H__ #include <slv2/plugin.h> @@ -91,5 +91,5 @@ slv2_plugins_get_at(SLV2Plugins list, } #endif -#endif /* __SLV2_PLUGINLIST_H__ */ +#endif /* __SLV2_PLUGINS_H__ */ diff --git a/slv2/port.h b/slv2/port.h index d415f84..165c1f1 100644 --- a/slv2/port.h +++ b/slv2/port.h @@ -26,7 +26,7 @@ extern "C" { #include <slv2/types.h> #include <slv2/plugin.h> #include <slv2/port.h> -#include <slv2/stringlist.h> +#include <slv2/strings.h> /** \addtogroup data * @{ diff --git a/slv2/slv2.h b/slv2/slv2.h index a052e56..2d89e4e 100644 --- a/slv2/slv2.h +++ b/slv2/slv2.h @@ -25,12 +25,12 @@ extern "C" { #include <slv2/types.h> #include <slv2/world.h> -#include <slv2/category.h> +#include <slv2/pluginclass.h> #include <slv2/plugin.h> #include <slv2/port.h> -#include <slv2/pluginlist.h> +#include <slv2/plugins.h> #include <slv2/plugininstance.h> -#include <slv2/stringlist.h> +#include <slv2/strings.h> #ifdef __cplusplus diff --git a/slv2/stringlist.h b/slv2/strings.h index eb613d6..5a16025 100644 --- a/slv2/stringlist.h +++ b/slv2/strings.h @@ -16,8 +16,8 @@ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifndef __SLV2_STRINGLIST_H__ -#define __SLV2_STRINGLIST_H__ +#ifndef __SLV2_STRINGS_H__ +#define __SLV2_STRINGS_H__ #include <stdbool.h> @@ -80,5 +80,5 @@ slv2_strings_free(SLV2Strings); } #endif -#endif /* __SLV2_STRINGLIST_H__ */ +#endif /* __SLV2_STRINGS_H__ */ diff --git a/slv2/types.h b/slv2/types.h index f595dd1..42f2e59 100644 --- a/slv2/types.h +++ b/slv2/types.h @@ -56,8 +56,8 @@ typedef struct _Plugin* SLV2Plugin; typedef struct _World* SLV2World; -/** A plugin category. Opaque, but valid to compare to NULL. */ -typedef struct _Category* SLV2Category; +/** A plugin class. Opaque, but valid to compare to NULL. */ +typedef struct _PluginClass* SLV2PluginClass; #ifdef __cplusplus diff --git a/slv2/world.h b/slv2/world.h index 64f0fc2..59b0adc 100644 --- a/slv2/world.h +++ b/slv2/world.h @@ -19,7 +19,8 @@ #ifndef __SLV2_WORLD_H__ #define __SLV2_WORLD_H__ -#include <slv2/pluginlist.h> +#include <slv2/plugins.h> +#include <slv2/pluginclasses.h> #ifdef __cplusplus extern "C" { @@ -102,6 +103,16 @@ slv2_world_load_bundle(SLV2World world, const char* bundle_uri); +/** Return a list of all found plugin classes. + * + * Returned list is owned by world and must not be freed by the caller. + * + * Time = O(1) + */ +SLV2PluginClasses +slv2_world_get_plugin_classes(SLV2World world); + + /** Return a list of all found plugins. * * The returned list contains just enough references to query @@ -110,8 +121,8 @@ slv2_world_load_bundle(SLV2World world, * a query (at which time the data is cached with the SLV2Plugin so future * queries are very fast). * - * Returned plugins contain a reference to this world, world must not be - * destroyed until plugins are finished with. + * Returned list must be freed by user with slv2_plugins_free. The contained + * plugins are owned by \a world and must not be freed by caller. * * Time = O(1) */ @@ -125,8 +136,8 @@ slv2_world_get_all_plugins(SLV2World world); * \a include (a pointer to a function which takes an SLV2Plugin and returns * a bool) will be in the returned list. * - * Returned plugins contain a reference to this world, world must not be - * destroyed until plugins are finished with. + * Returned list must be freed by user with slv2_plugins_free. The contained + * plugins are owned by \a world and must not be freed by caller. * * Time = O(n * Time(include)) */ @@ -135,6 +146,18 @@ slv2_world_get_plugins_by_filter(SLV2World world, bool (*include)(SLV2Plugin)); +/** Return a list of found plugins in a given class. + * + * Returned list must be freed by user with slv2_plugins_free. The contained + * plugins are owned by \a world and must not be freed by caller. + * + * Time = O(n) + */ +SLV2Plugins +slv2_world_get_plugins_by_class(SLV2World world, + SLV2PluginClass plugin_class); + + #if 0 /** Get plugins filtered by a user-defined SPARQL query. * diff --git a/src/Makefile.am b/src/Makefile.am index cc5a774..11f7aa8 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -7,12 +7,12 @@ libslv2_la_LIBADD = @REDLAND_LIBS@ libslv2_la_SOURCES = \ private_types.h \ world.c \ - category.c \ - categories.c \ + pluginclass.c \ + pluginclasses.c \ plugin.c \ query.c \ port.c \ - pluginlist.c \ + plugins.c \ plugininstance.c \ - stringlist.c \ + strings.c \ util.c diff --git a/src/plugin.c b/src/plugin.c index 7fe8e1d..6216ab7 100644 --- a/src/plugin.c +++ b/src/plugin.c @@ -25,7 +25,7 @@ #include <slv2/plugin.h> #include <slv2/types.h> #include <slv2/util.h> -#include <slv2/stringlist.h> +#include <slv2/strings.h> #include "private_types.h" @@ -37,7 +37,7 @@ slv2_plugin_new(SLV2World world, librdf_uri* uri, const char* binary_uri) plugin->world = world; plugin->plugin_uri = librdf_new_uri_from_uri(uri); plugin->binary_uri = strdup(binary_uri); - plugin->category = NULL; + plugin->plugin_class = NULL; plugin->data_uris = slv2_strings_new(); plugin->ports = raptor_new_sequence((void (*)(void*))&slv2_port_free, NULL); plugin->storage = NULL; @@ -146,7 +146,7 @@ slv2_plugin_load(SLV2Plugin p) librdf_free_uri(data_uri); } - // Load category + // Load plugin_class const unsigned char* query = (const unsigned char*) "SELECT DISTINCT ?class WHERE { <> a ?class }"; @@ -160,16 +160,20 @@ slv2_plugin_load(SLV2Plugin p) librdf_uri* class_uri = librdf_node_get_uri(class_node); const char* class_uri_str = (const char*)librdf_uri_as_string(class_uri); - SLV2Category category = slv2_categories_get_by_uri(p->world->categories, class_uri_str); + SLV2PluginClass plugin_class = slv2_plugin_classes_get_by_uri( + p->world->plugin_classes, class_uri_str); - if (category) { - p->category = category; + if (plugin_class) { + p->plugin_class = plugin_class; break; } librdf_query_results_next(results); } + if (p->plugin_class == NULL) + fprintf(stderr, "Warning: Unclassy plugin: %s\n", slv2_plugin_get_uri(p)); + // Load ports query = (const unsigned char*) "PREFIX : <http://lv2plug.in/ontology#>\n" @@ -242,13 +246,13 @@ slv2_plugin_get_library_uri(SLV2Plugin p) } -SLV2Category -slv2_plugin_get_category(SLV2Plugin p) +SLV2PluginClass +slv2_plugin_get_plugin_class(SLV2Plugin p) { - if (!p->category) + if (!p->plugin_class) slv2_plugin_load(p); - return p->category; + return p->plugin_class; } @@ -325,6 +329,15 @@ slv2_plugin_get_name(SLV2Plugin plugin) } +/** Get the class this plugin belongs to (ie Filters). + */ +SLV2PluginClass +slv2_plugin_get_class(SLV2Plugin plugin) +{ + return plugin->plugin_class; +} + + SLV2Strings slv2_plugin_get_value(SLV2Plugin p, const char* predicate) diff --git a/src/category.c b/src/pluginclass.c index 5eae2af..3669b9b 100644 --- a/src/category.c +++ b/src/pluginclass.c @@ -20,38 +20,38 @@ #include <stdlib.h> #include <string.h> -#include <slv2/category.h> +#include <slv2/pluginclass.h> #include "private_types.h" -SLV2Category -slv2_category_new(const char* uri, const char* label) +SLV2PluginClass +slv2_plugin_class_new(const char* uri, const char* label) { - SLV2Category category = (SLV2Category)malloc(sizeof(struct _Category)); - category->uri = strdup(uri); - category->label = strdup(label); - return category; + SLV2PluginClass plugin_class = (SLV2PluginClass)malloc(sizeof(struct _PluginClass)); + plugin_class->uri = strdup(uri); + plugin_class->label = strdup(label); + return plugin_class; } void -slv2_category_free(SLV2Category category) +slv2_plugin_class_free(SLV2PluginClass plugin_class) { - free(category->uri); - free(category->label); - free(category); + free(plugin_class->uri); + free(plugin_class->label); + free(plugin_class); } const char* -slv2_category_get_uri(SLV2Category category) +slv2_plugin_class_get_uri(SLV2PluginClass plugin_class) { - return category->uri; + return plugin_class->uri; } const char* -slv2_category_get_label(SLV2Category category) +slv2_plugin_class_get_label(SLV2PluginClass plugin_class) { - return category->label; + return plugin_class->label; } diff --git a/src/categories.c b/src/pluginclasses.c index 133e7ee..919201e 100644 --- a/src/categories.c +++ b/src/pluginclasses.c @@ -21,35 +21,35 @@ #include <string.h> #include <limits.h> #include <librdf.h> -#include <slv2/category.h> -#include <slv2/categories.h> +#include <slv2/pluginclass.h> +#include <slv2/pluginclasses.h> #include "private_types.h" -SLV2Categories -slv2_categories_new() +SLV2PluginClasses +slv2_plugin_classes_new() { - return raptor_new_sequence((void (*)(void*))&slv2_category_free, NULL); + return raptor_new_sequence((void (*)(void*))&slv2_plugin_class_free, NULL); } void -slv2_categories_free(SLV2Categories list) +slv2_plugin_classes_free(SLV2PluginClasses list) { - //if (list != world->categories) + //if (list != world->plugin_classes) raptor_free_sequence(list); } unsigned -slv2_categories_size(SLV2Categories list) +slv2_plugin_classes_size(SLV2PluginClasses list) { return raptor_sequence_size(list); } -SLV2Category -slv2_categories_get_by_uri(SLV2Categories list, const char* uri) +SLV2PluginClass +slv2_plugin_classes_get_by_uri(SLV2PluginClasses list, const char* uri) { // good old fashioned binary search @@ -63,9 +63,9 @@ slv2_categories_get_by_uri(SLV2Categories list, const char* uri) while (upper >= lower) { i = lower + ((upper - lower) / 2); - SLV2Category p = raptor_sequence_get_at(list, i); + SLV2PluginClass p = raptor_sequence_get_at(list, i); - int cmp = strcmp(slv2_category_get_uri(p), uri); + int cmp = strcmp(slv2_plugin_class_get_uri(p), uri); if (cmp == 0) return p; @@ -79,12 +79,12 @@ slv2_categories_get_by_uri(SLV2Categories list, const char* uri) } -SLV2Category -slv2_categories_get_at(SLV2Categories list, unsigned index) +SLV2PluginClass +slv2_plugin_classes_get_at(SLV2PluginClasses list, unsigned index) { if (index > INT_MAX) return NULL; else - return (SLV2Category)raptor_sequence_get_at(list, (int)index); + return (SLV2PluginClass)raptor_sequence_get_at(list, (int)index); } diff --git a/src/pluginlist.c b/src/plugins.c index da003a5..9d62398 100644 --- a/src/pluginlist.c +++ b/src/plugins.c @@ -26,7 +26,7 @@ #include <slv2/types.h> #include <slv2/plugin.h> #include <slv2/pluginlist.h> -#include <slv2/stringlist.h> +#include <slv2/strings.h> #include <slv2/util.h> #include "private_types.h" diff --git a/src/private_types.h b/src/private_types.h index ff4580c..a0337ac 100644 --- a/src/private_types.h +++ b/src/private_types.h @@ -27,7 +27,7 @@ extern "C" { #include <stddef.h> #include <librdf.h> #include <slv2/pluginlist.h> -#include <slv2/categories.h> +#include <slv2/pluginclasses.h> /** Reference to a port on some plugin. @@ -54,7 +54,7 @@ struct _Plugin { librdf_uri* plugin_uri; // char* bundle_url; // Bundle directory plugin was loaded from char* binary_uri; // lv2:binary - SLV2Category category; + SLV2PluginClass plugin_class; raptor_sequence* data_uris; // rdfs::seeAlso raptor_sequence* ports; librdf_storage* storage; @@ -80,26 +80,26 @@ struct _InstanceImpl { }; -struct _Category { +struct _PluginClass { char* uri; char* label; }; -SLV2Category slv2_category_new(const char* uri, const char* label); -void slv2_category_free(SLV2Category category); +SLV2PluginClass slv2_plugin_class_new(const char* uri, const char* label); +void slv2_plugin_class_free(SLV2PluginClass class); -SLV2Categories slv2_categories_new(); -void slv2_categories_free(); +SLV2PluginClasses slv2_plugin_classes_new(); +void slv2_plugin_classes_free(); /** Model of LV2 (RDF) data loaded from bundles. */ struct _World { - librdf_world* world; - librdf_storage* storage; - librdf_model* model; - librdf_parser* parser; - SLV2Categories categories; - SLV2Plugins plugins; + librdf_world* world; + librdf_storage* storage; + librdf_model* model; + librdf_parser* parser; + SLV2PluginClasses plugin_classes; + SLV2Plugins plugins; }; /** Load all bundles found in \a search_path. diff --git a/src/query.c b/src/query.c index 56a7412..a4d8e16 100644 --- a/src/query.c +++ b/src/query.c @@ -23,7 +23,7 @@ #include <librdf.h> #include <slv2/plugin.h> #include <slv2/util.h> -#include <slv2/stringlist.h> +#include <slv2/strings.h> #include "private_types.h" diff --git a/src/stringlist.c b/src/strings.c index 2233e7e..39da54f 100644 --- a/src/stringlist.c +++ b/src/strings.c @@ -20,7 +20,7 @@ #include <stdlib.h> #include <limits.h> #include <raptor.h> -#include <slv2/stringlist.h> +#include <slv2/strings.h> SLV2Strings diff --git a/src/world.c b/src/world.c index c8735ea..d4d47b2 100644 --- a/src/world.c +++ b/src/world.c @@ -44,7 +44,7 @@ slv2_world_new() world->parser = librdf_new_parser(world->world, "turtle", NULL, NULL); - world->categories = slv2_categories_new(); + world->plugin_classes = slv2_plugin_classes_new(); world->plugins = slv2_plugins_new(); @@ -60,8 +60,8 @@ slv2_world_free(SLV2World world) raptor_free_sequence(world->plugins); world->plugins = NULL; - slv2_categories_free(world->categories); - world->categories = NULL; + slv2_plugin_classes_free(world->plugin_classes); + world->plugin_classes = NULL; librdf_free_parser(world->parser); world->parser = NULL; @@ -164,17 +164,18 @@ slv2_plugin_compare_by_uri(const void* a, const void* b) void -slv2_world_load_categories(SLV2World world) +slv2_world_load_plugin_classes(SLV2World world) { // FIXME: This will need to be a bit more clever when more data is around - // then the ontology (ie classes which aren't LV2 categories) + // then the ontology (ie classes which aren't LV2 plugin_classes) unsigned char* query_string = (unsigned char*) "PREFIX : <http://lv2plug.in/ontology#>\n" "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n" - "SELECT DISTINCT ?category ?label\n" - "WHERE { ?category a rdfs:Class; rdfs:label ?label }\n" - "ORDER BY ?category\n"; + "SELECT DISTINCT ?class ?label WHERE {\n" + //" ?plugin a :Plugin; a ?class .\n" + " ?class a rdfs:Class; rdfs:label ?label\n" + "} ORDER BY ?class\n"; librdf_query* q = librdf_new_query(world->world, "sparql", NULL, query_string, NULL); @@ -182,16 +183,17 @@ slv2_world_load_categories(SLV2World world) librdf_query_results* results = librdf_query_execute(q, world->model); while (!librdf_query_results_finished(results)) { - librdf_node* category_node = librdf_query_results_get_binding_value(results, 0); - librdf_uri* category_uri = librdf_node_get_uri(category_node); + librdf_node* class_node = librdf_query_results_get_binding_value(results, 0); + librdf_uri* class_uri = librdf_node_get_uri(class_node); librdf_node* label_node = librdf_query_results_get_binding_value(results, 1); const char* label = (const char*)librdf_node_get_literal_value(label_node); - //printf("CATEGORY: %s (%s)\n", librdf_uri_as_string(category_uri), label); - SLV2Category category = slv2_category_new( - (const char*)librdf_uri_as_string(category_uri), + //printf("CLASS: %s (%s)\n", librdf_uri_as_string(class_uri), label); + + SLV2PluginClass plugin_class = slv2_plugin_class_new( + (const char*)librdf_uri_as_string(class_uri), label); - raptor_sequence_push(world->categories, category); + raptor_sequence_push(world->plugin_classes, plugin_class); librdf_query_results_next(results); } @@ -228,7 +230,7 @@ slv2_world_load_all(SLV2World world) /* 3. Query out things to cache */ - slv2_world_load_categories(world); + slv2_world_load_plugin_classes(world); // Find all plugins and associated data files unsigned char* query_string = (unsigned char*) @@ -307,6 +309,13 @@ slv2_world_serialize(const char* filename) #endif +SLV2PluginClasses +slv2_world_get_plugin_classes(SLV2World world) +{ + return world->plugin_classes; +} + + SLV2Plugins slv2_world_get_all_plugins(SLV2World world) { diff --git a/utils/lv2_inspect.c b/utils/lv2_inspect.c index 75b6fac..f1e1881 100644 --- a/utils/lv2_inspect.c +++ b/utils/lv2_inspect.c @@ -97,7 +97,7 @@ print_plugin(SLV2Plugin p) printf("\tName: %s\n\n", str); free(str); - const char* class_label = slv2_category_get_label(slv2_plugin_get_category(p)); + const char* class_label = slv2_plugin_class_get_label(slv2_plugin_get_class(p)); printf("\tClass: %s\n\n", class_label); if (slv2_plugin_has_latency(p)) |