Mercurial > pidgin.yaz
comparison 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 |
comparison
equal
deleted
inserted
replaced
26010:3b4b9795f987 | 26011:e8b8c6b14196 |
---|---|
754 { | 754 { |
755 g_signal_emit(media, purple_media_signals[GOT_ACCEPT], 0); | 755 g_signal_emit(media, purple_media_signals[GOT_ACCEPT], 0); |
756 } | 756 } |
757 | 757 |
758 GList* | 758 GList* |
759 purple_media_get_devices(GstElement *element) | 759 purple_media_get_devices(const gchar *plugin) |
760 { | 760 { |
761 GObjectClass *klass; | 761 GObjectClass *klass; |
762 GstPropertyProbe *probe; | 762 GstPropertyProbe *probe; |
763 const GParamSpec *pspec; | 763 const GParamSpec *pspec; |
764 | 764 GstElement *element = gst_element_factory_make(plugin, NULL); |
765 GstElementFactory *factory; | |
765 const gchar *longname = NULL; | 766 const gchar *longname = NULL; |
766 | |
767 GstElementFactory *factory = | |
768 gst_element_get_factory(element); | |
769 | |
770 GList *ret = NULL; | 767 GList *ret = NULL; |
768 | |
769 if (element == NULL) | |
770 return NULL; | |
771 | |
772 factory = gst_element_get_factory(element); | |
771 | 773 |
772 longname = gst_element_factory_get_longname(factory); | 774 longname = gst_element_factory_get_longname(factory); |
773 klass = G_OBJECT_GET_CLASS(element); | 775 klass = G_OBJECT_GET_CLASS(element); |
774 | 776 |
775 if (!g_object_class_find_property (klass, "device") || | 777 if (!g_object_class_find_property (klass, "device") || |
798 for (n = 0 ; n < array->n_values ; n++) { | 800 for (n = 0 ; n < array->n_values ; n++) { |
799 GValue *device = g_value_array_get_nth (array, n); | 801 GValue *device = g_value_array_get_nth (array, n); |
800 | 802 |
801 ret = g_list_append(ret, g_value_dup_string(device)); | 803 ret = g_list_append(ret, g_value_dup_string(device)); |
802 | 804 |
805 g_object_set(G_OBJECT(element), "device", | |
806 g_value_get_string(device), NULL); | |
803 g_object_get(G_OBJECT(element), "device-name", &name, NULL); | 807 g_object_get(G_OBJECT(element), "device-name", &name, NULL); |
804 purple_debug_info("media", "Found source '%s' (%s) - device '%s' (%s)\n", | 808 purple_debug_info("media", "Found source '%s' (%s) - device '%s' (%s)\n", |
805 longname, GST_PLUGIN_FEATURE (factory)->name, | 809 longname, GST_PLUGIN_FEATURE (factory)->name, |
806 name, g_value_get_string(device)); | 810 name, g_value_get_string(device)); |
807 g_free(name); | 811 g_free(name); |
816 g_object_set (G_OBJECT (element), "autoprobe-fps", TRUE, NULL); | 820 g_object_set (G_OBJECT (element), "autoprobe-fps", TRUE, NULL); |
817 } | 821 } |
818 } | 822 } |
819 } | 823 } |
820 | 824 |
825 gst_object_unref(element); | |
821 return ret; | 826 return ret; |
822 } | 827 } |
823 | 828 |
824 gchar * | 829 gchar * |
825 purple_media_element_get_device(GstElement *element) | 830 purple_media_element_get_device(GstElement *element) |