summaryrefslogtreecommitdiff
path: root/ext/lv2
diff options
context:
space:
mode:
authorStefan Sauer <ensonic@users.sf.net>2016-05-10 21:11:41 -0700
committerStefan Sauer <ensonic@users.sf.net>2016-05-10 21:11:41 -0700
commitf35d4d43ea0291df1edf6fb3d3b0e6638b60de76 (patch)
tree67b16a4c2b250af05c81b20efe6daff786847b4e /ext/lv2
parenta05f8ddb5d856f46550d97fb98ae437719166859 (diff)
downloadgstreamer-plugins-bad-f35d4d43ea0291df1edf6fb3d3b0e6638b60de76.tar.gz
lv2: add classification from metadata
This helps apps to structure the element collection.
Diffstat (limited to 'ext/lv2')
-rw-r--r--ext/lv2/gstlv2utils.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/ext/lv2/gstlv2utils.c b/ext/lv2/gstlv2utils.c
index fca3a1c59..589f6c56c 100644
--- a/ext/lv2/gstlv2utils.c
+++ b/ext/lv2/gstlv2utils.c
@@ -311,7 +311,9 @@ gst_lv2_element_class_set_metadata (GstLV2Class * lv2_class,
{
LilvPlugin *lv2plugin = lv2_class->plugin;
LilvNode *val;
- gchar *longname, *author;
+ const LilvPluginClass *lv2plugin_class;
+ const LilvNode *cval;
+ gchar *longname, *author, *class_tags = NULL;
val = lilv_plugin_get_name (lv2plugin);
if (val) {
@@ -328,10 +330,18 @@ gst_lv2_element_class_set_metadata (GstLV2Class * lv2_class,
author = g_strdup ("no author available");
}
- gst_element_class_set_metadata (elem_class, longname, lv2_class_tags,
- longname, author);
+ lv2plugin_class = lilv_plugin_get_class (lv2plugin);
+ cval = lilv_plugin_class_get_label (lv2plugin_class);
+ if (cval) {
+ class_tags = g_strconcat (lv2_class_tags, "/", lilv_node_as_string (cval),
+ NULL);
+ }
+
+ gst_element_class_set_metadata (elem_class, longname,
+ (class_tags ? class_tags : lv2_class_tags), longname, author);
g_free (longname);
g_free (author);
+ g_free (class_tags);
}