/pidgin/main: c52fa2813311: mediamanager: add purple_media_manag...
Jakub Adam <[email protected]> Mon, 18 Jul 2016 00:33:09 -0400
| Newsgroups | gmane.comp.gnome.gaim.cvs |
|---|---|
| Message-ID | <[email protected]> |
Changeset: c52fa28133112d26a9f0a401de3b9ef3ae5cf725 Author: Jakub Adam <[email protected]> Date: 2016-06-22 10:15 +0200 Branch: default URL: https://hg.pidgin.im/pidgin/main/rev/c52fa2813311 Description: mediamanager: add purple_media_manager_enumerate_elements() diffstat: libpurple/media-gst.h | 11 +++++++++++ libpurple/mediamanager.c | 22 ++++++++++++++++++++++ 2 files changed, 33 insertions(+), 0 deletions(-) diffs (53 lines): diff --git a/libpurple/media-gst.h b/libpurple/media-gst.h --- a/libpurple/media-gst.h +++ b/libpurple/media-gst.h @@ -163,6 +163,17 @@ GstElement *purple_media_manager_get_ele PurpleMediaSessionType type, PurpleMedia *media, const gchar *session_id, const gchar *participant); +/** + * purple_media_manager_enumerate_elements: + * @manager: The media manager to use to obtain the element infos. + * @type: The type of element infos to get. + * + * Returns: A #GList of registered #PurpleMediaElementInfo instances that match + * @type. + */ +GList *purple_media_manager_enumerate_elements(PurpleMediaManager *manager, + PurpleMediaElementType type); + PurpleMediaElementInfo *purple_media_manager_get_element_info( PurpleMediaManager *manager, const gchar *name); gboolean purple_media_manager_register_element(PurpleMediaManager *manager, diff --git a/libpurple/mediamanager.c b/libpurple/mediamanager.c --- a/libpurple/mediamanager.c +++ b/libpurple/mediamanager.c @@ -2118,6 +2118,28 @@ purple_media_manager_init_device_monitor #endif /* GST_CHECK_VERSION(1, 4, 0) */ } +GList * +purple_media_manager_enumerate_elements(PurpleMediaManager *manager, + PurpleMediaElementType type) +{ + GList *result = NULL; + GList *i; + + for (i = manager->priv->elements; i; i = i->next) { + PurpleMediaElementInfo *info = i->data; + PurpleMediaElementType type2; + + type2 = purple_media_element_info_get_element_type(info); + + if ((type2 & type) == type) { + g_object_ref(info); + result = g_list_prepend(result, info); + } + } + + return result; +} + /* * PurpleMediaElementType */ _______________________________________________ Commits mailing list [email protected] https://pidgin.im/cgi-bin/mailman/listinfo/commits