Collections¶
Lilv has several collection types for holding various types of value.
Each collection type supports a similar basic API, except LilvPlugins
which is internal and thus lacks a free function:
void PREFIX_free (coll)
unsigned PREFIX_size (coll)
LilvIter* PREFIX_begin (coll)
The types of collection are:
LilvPlugins, with function prefix
lilv_plugins_
.LilvPluginClasses, with function prefix
lilv_plugin_classes_
.LilvScalePoints, with function prefix
lilv_scale_points_
.LilvNodes, with function prefix
lilv_nodes_
.LilvUIs, with function prefix
lilv_uis_
.
-
void
lilv_plugin_classes_free
(LilvPluginClasses *collection)¶
-
unsigned
lilv_plugin_classes_size
(const LilvPluginClasses *collection)¶
-
LilvIter *
lilv_plugin_classes_begin
(const LilvPluginClasses *collection)¶
-
const LilvPluginClass *
lilv_plugin_classes_get
(const LilvPluginClasses *collection, LilvIter *i)¶
-
LilvIter *
lilv_plugin_classes_next
(const LilvPluginClasses *collection, LilvIter *i)¶
-
bool
lilv_plugin_classes_is_end
(const LilvPluginClasses *collection, LilvIter *i)¶
-
const LilvPluginClass *
lilv_plugin_classes_get_by_uri
(const LilvPluginClasses *classes, const LilvNode *uri)¶ Get a plugin class from
classes
by URI.Return value is shared (stored in
classes
) and must not be freed or modified by the caller in any way.- Returns
NULL if no plugin class with
uri
is found inclasses
.
-
void
lilv_scale_points_free
(LilvScalePoints *collection)¶
-
unsigned
lilv_scale_points_size
(const LilvScalePoints *collection)¶
-
LilvIter *
lilv_scale_points_begin
(const LilvScalePoints *collection)¶
-
const LilvScalePoint *
lilv_scale_points_get
(const LilvScalePoints *collection, LilvIter *i)¶
-
LilvIter *
lilv_scale_points_next
(const LilvScalePoints *collection, LilvIter *i)¶
-
bool
lilv_scale_points_is_end
(const LilvScalePoints *collection, LilvIter *i)¶
-
const LilvUI *
lilv_uis_get_by_uri
(const LilvUIs *uis, const LilvNode *uri)¶ Get a UI from
uis
by URI.Return value is shared (stored in
uis
) and must not be freed or modified by the caller in any way.- Returns
NULL if no UI with
uri
is found inlist
.
-
bool
lilv_nodes_contains
(const LilvNodes *nodes, const LilvNode *value)¶ Return whether
values
containsvalue
.
-
LilvNodes *
lilv_nodes_merge
(const LilvNodes *a, const LilvNodes *b)¶ Return a new LilvNodes that contains all nodes from both
a
andb
.
-
unsigned
lilv_plugins_size
(const LilvPlugins *collection)¶
-
LilvIter *
lilv_plugins_begin
(const LilvPlugins *collection)¶
-
const LilvPlugin *
lilv_plugins_get
(const LilvPlugins *collection, LilvIter *i)¶
-
LilvIter *
lilv_plugins_next
(const LilvPlugins *collection, LilvIter *i)¶
-
bool
lilv_plugins_is_end
(const LilvPlugins *collection, LilvIter *i)¶
-
const LilvPlugin *
lilv_plugins_get_by_uri
(const LilvPlugins *plugins, const LilvNode *uri)¶ Get a plugin from
plugins
by URI.Return value is shared (stored in
plugins
) and must not be freed or modified by the caller in any way.- Returns
NULL if no plugin with
uri
is found inplugins
.
-
LILV_FOREACH
¶ Iterate over each element of a collection.
LILV_FOREACH(plugin_classes, i, classes) { LilvPluginClass c = lilv_plugin_classes_get(classes, i); // ... }