[linux-audio-dev] ANN: New version of liblrdf
torbenh at gmx.de
torbenh at gmx.de
Thu Mar 6 10:36:00 UTC 2003
On Thu, Mar 06, 2003 at 02:59:26PM +0000, Steve Harris wrote:
> 0.2.4 http://plugin.org.uk/lrdf/
>
> liblrdf is a library for handling RDF files describing LADSPA plugins,
> plus it can also do lightweight general RDF tasks.
>
> Changes:
> Added a pkgconfig file suppllied by Taybin
> Fixed a buffer overrun triggered by rebuilding the caches
> Fixed a bunch of memory leaks
>
> PS Someone had some code that generated string to build GTK (I think)
> menus from, if you could mail me the code again then I'l provide it as
> a function or at least put it in the documentation. Sorry, I lost the
> mail and forgot your name :(
>
> - Steve
>
It only sets up a relation UniqueID -> paths
i just took some code from jack-rack and showtaxonomy.c
This is essentially what has to be done:
i can send the complete file if this is not sufficient for
you....
PRIVATE void setup_lrdf( void ) {
lrdf_init( );
plugin_mgr_load_path_uris();
PathIndex = g_relation_new(2);
g_relation_index(PathIndex, 0, g_int_hash, g_int_equal);
decend(LADSPA_BASE "Plugin", "LADSPA");
}
void decend(char *uri, char *base)
{
lrdf_uris *uris;
unsigned int i;
char *newbase;
char *label;
uris = lrdf_get_instances(uri);
if (uris != NULL) {
for (i = 0; i < uris->count; i++) {
guint *uid = safe_malloc( sizeof( guint ) );
char *basedup = safe_string_dup( base );
*uid = lrdf_get_uid( uris->items[i] );
//printf("%s/[%d]\n", base, *uid );
g_relation_insert( PathIndex, uid, basedup );
//printf( "selct: %d\n", g_relation_count( PathIndex, uid, 0 ) );
}
lrdf_free_uris(uris);
}
uris = lrdf_get_subclasses(uri);
if (uris != NULL) {
for (i = 0; i < uris->count; i++) {
label = lrdf_get_label(uris->items[i]);
newbase = malloc(strlen(base) + strlen(label) + 2);
sprintf(newbase, "%s/%s", base, label);
//printf("%s\n", newbase);
decend(uris->items[i], newbase);
free(newbase);
}
lrdf_free_uris(uris);
}
}
--
torben Hohn
http://galan.sourceforge.net -- The graphical Audio language
More information about the Linux-audio-dev
mailing list