Mercurial > pidgin.yaz
diff libpurple/media.c @ 26011:e8b8c6b14196
Simplified purple_media_get_devices.
author | Mike Ruprecht <maiku@soc.pidgin.im> |
---|---|
date | Mon, 01 Sep 2008 03:18:26 +0000 |
parents | 3b4b9795f987 |
children | 5a774d0817d8 |
line wrap: on
line diff
--- a/libpurple/media.c Mon Sep 01 01:58:42 2008 +0000 +++ b/libpurple/media.c Mon Sep 01 03:18:26 2008 +0000 @@ -756,18 +756,20 @@ } GList* -purple_media_get_devices(GstElement *element) +purple_media_get_devices(const gchar *plugin) { GObjectClass *klass; GstPropertyProbe *probe; const GParamSpec *pspec; - + GstElement *element = gst_element_factory_make(plugin, NULL); + GstElementFactory *factory; const gchar *longname = NULL; + GList *ret = NULL; - GstElementFactory *factory = - gst_element_get_factory(element); + if (element == NULL) + return NULL; - GList *ret = NULL; + factory = gst_element_get_factory(element); longname = gst_element_factory_get_longname(factory); klass = G_OBJECT_GET_CLASS(element); @@ -800,6 +802,8 @@ ret = g_list_append(ret, g_value_dup_string(device)); + g_object_set(G_OBJECT(element), "device", + g_value_get_string(device), NULL); g_object_get(G_OBJECT(element), "device-name", &name, NULL); purple_debug_info("media", "Found source '%s' (%s) - device '%s' (%s)\n", longname, GST_PLUGIN_FEATURE (factory)->name, @@ -818,6 +822,7 @@ } } + gst_object_unref(element); return ret; }