Mercurial > pidgin
diff libpurple/mediamanager.c @ 24950:431c59a6959d
Add purple_media_manager_get_element.
author | Mike Ruprecht <maiku@soc.pidgin.im> |
---|---|
date | Thu, 06 Nov 2008 01:32:58 +0000 |
parents | 0baeafee93be |
children | 18b71033ea6e |
line wrap: on
line diff
--- a/libpurple/mediamanager.c Mon Nov 03 03:07:07 2008 +0000 +++ b/libpurple/mediamanager.c Thu Nov 06 01:32:58 2008 +0000 @@ -199,4 +199,29 @@ g_list_delete_link(manager->priv->medias, list); } +GstElement * +purple_media_manager_get_element(PurpleMediaManager *manager, + PurpleMediaSessionType type) +{ + GstElement *ret = NULL; + GstElement *level = NULL; + + /* TODO: If src, retrieve current src */ + /* TODO: Send a signal here to allow for overriding the source/sink */ + + if (type & PURPLE_MEDIA_SEND_AUDIO) + purple_media_audio_init_src(&ret, &level); + else if (type & PURPLE_MEDIA_RECV_AUDIO) + purple_media_audio_init_recv(&ret, &level); + else if (type & PURPLE_MEDIA_SEND_VIDEO) + purple_media_video_init_src(&ret); + else if (type & PURPLE_MEDIA_RECV_VIDEO) + purple_media_video_init_recv(&ret); + + if (ret == NULL) + purple_debug_error("media", "Error creating source or sink\n"); + + return ret; +} + #endif /* USE_VV */