diff pidgin/gtkmedia.c @ 26163:521366dfd8db

Implement functions to register and unregister media elements for use in allowing plugins and GUIs to alter the pipeline.
author Mike Ruprecht <maiku@soc.pidgin.im>
date Tue, 03 Feb 2009 22:37:24 +0000
parents 2b843d38d1f2
children fc100e71de5d
line wrap: on
line diff
--- a/pidgin/gtkmedia.c	Tue Feb 03 21:37:27 2009 +0000
+++ b/pidgin/gtkmedia.c	Tue Feb 03 22:37:24 2009 +0000
@@ -785,11 +785,38 @@
 	return TRUE;
 }
 
+static PurpleMediaElementInfo default_video_src =
+{
+	"pidgindefaultvideosrc",	/* id */
+};
+
+static PurpleMediaElementInfo default_video_sink =
+{
+	"pidgindefaultvideosink",	/* id */
+};
+
+static PurpleMediaElementInfo default_audio_src =
+{
+	"pidgindefaultaudiosrc",	/* id */
+};
+
+static PurpleMediaElementInfo default_audio_sink =
+{
+	"pidgindefaultaudiosink",	/* id */
+};
+
 void
 pidgin_medias_init(void)
 {
-	g_signal_connect(G_OBJECT(purple_media_manager_get()), "init-media",
+	PurpleMediaManager *manager = purple_media_manager_get();
+	g_signal_connect(G_OBJECT(manager), "init-media",
 			 G_CALLBACK(pidgin_media_new_cb), NULL);
+
+	purple_debug_info("gtkmedia", "Registering media element types\n");
+	purple_media_manager_register_element(manager, &default_video_src);
+	purple_media_manager_register_element(manager, &default_video_sink);
+	purple_media_manager_register_element(manager, &default_audio_src);
+	purple_media_manager_register_element(manager, &default_audio_sink);
 }
 
 #endif  /* USE_VV */