diff options
Diffstat (limited to 'ext/lv2/gstlv2.c')
-rw-r--r-- | ext/lv2/gstlv2.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/ext/lv2/gstlv2.c b/ext/lv2/gstlv2.c index 2dc157ec4..bb8cfc89a 100644 --- a/ext/lv2/gstlv2.c +++ b/ext/lv2/gstlv2.c @@ -790,6 +790,7 @@ lv2_plugin_discover (void) for (i = 0; i < slv2_plugins_size (plugins); ++i) { SLV2Plugin lv2plugin = slv2_plugins_get_at (plugins, i); gint num_audio_ports = 0; + const gchar *plugin_uri, *p; gchar *type_name; GTypeInfo typeinfo = { sizeof (GstLV2Class), @@ -804,9 +805,14 @@ lv2_plugin_discover (void) }; GType type; + plugin_uri = slv2_value_as_uri (slv2_plugin_get_uri (lv2plugin)); /* construct the type name from plugin URI */ - type_name = g_strdup_printf ("%s", - slv2_value_as_uri (slv2_plugin_get_uri (lv2plugin))); + if ((p = strstr (plugin_uri, "://"))) { + /* cut off the protocol (e.g. http://) */ + type_name = g_strdup (&p[3]); + } else { + type_name = g_strdup (plugin_uri); + } g_strcanon (type_name, G_CSET_A_2_Z G_CSET_a_2_z G_CSET_DIGITS "-+", '-'); /* if it's already registered, drop it */ |