pidgin.vv: a7974794: Get rid of the media tab in the preferen...

maiku at soc.pidgin.im maiku at soc.pidgin.im
Fri Apr 3 02:50:45 EDT 2009


-----------------------------------------------------------------
Revision: a797479464a6076b96e2bf2da9ccf62bed86e8ac
Ancestor: 54b75693daa4888d97db3e0f42dedc18239559b5
Author: maiku at soc.pidgin.im
Date: 2009-04-03T05:24:47
Branch: im.pidgin.pidgin.vv
URL: http://d.pidgin.im/viewmtn/revision/info/a797479464a6076b96e2bf2da9ccf62bed86e8ac

Modified files:
        pidgin/gtkprefs.c

ChangeLog: 

Get rid of the media tab in the preferences.

-------------- next part --------------
============================================================
--- pidgin/gtkprefs.c	4e374e4fe0364c46d63e069313a61604b8607cd1
+++ pidgin/gtkprefs.c	a87a7f8295af6d8ab1e2689c9d9b019183b89744
@@ -28,9 +28,6 @@
 #include "pidgin.h"
 
 #include "debug.h"
-#ifdef USE_VV
-#include "mediamanager.h"
-#endif
 #include "notify.h"
 #include "prefs.h"
 #include "proxy.h"
@@ -57,10 +54,6 @@
 #include "gtkutils.h"
 #include "pidginstock.h"
 
-#ifdef USE_VV
-#include <gst/interfaces/propertyprobe.h>
-#endif
-
 #define PROXYHOST 0
 #define PROXYPORT 1
 #define PROXYUSER 2
@@ -2406,319 +2399,8 @@ sound_page(void)
 	return ret;
 }
 
-#ifdef USE_VV
-static GList*
-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;
 
-	if (element == NULL)
-		return NULL;
-
-	factory = gst_element_get_factory(element);
-
-	longname = gst_element_factory_get_longname(factory);
-	klass = G_OBJECT_GET_CLASS(element);
-
-	if (!g_object_class_find_property(klass, "device") ||
-			!GST_IS_PROPERTY_PROBE(element) ||
-			!(probe = GST_PROPERTY_PROBE(element)) ||
-			!(pspec = gst_property_probe_get_property(probe,
-					"device"))) {
-		purple_debug_info("media",
-				"Found source '%s' (%s) - no device\n",
-				longname, GST_PLUGIN_FEATURE (factory)->name);
-	} else {
-		gint n;
-		gchar *name;
-		GValueArray *array;
-
-		purple_debug_info("media", "Found devices\n");
-
-		/* Set autoprobe[-fps] to FALSE to avoid delays when probing. */
-		if (g_object_class_find_property (klass, "autoprobe")) {
-			g_object_set(G_OBJECT (element),
-					"autoprobe", FALSE, NULL);
-			if (g_object_class_find_property(klass,
-					"autoprobe-fps")) {
-				g_object_set(G_OBJECT(element),
-						"autoprobe-fps", FALSE, NULL);
-			}
-		}
-
-		array = gst_property_probe_probe_and_get_values(probe, pspec);
-		if (array != NULL) {
-			for (n = 0 ; n < array->n_values ; n++) {
-				GValue *device = g_value_array_get_nth(
-						array, n);
-				
-				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,	name,
-						g_value_get_string(device));
-				g_free(name);
-			}
-			g_value_array_free(array);
-		}
-
-		/* Restore autoprobe[-fps] to TRUE. */
-		if (g_object_class_find_property(klass, "autoprobe")) {
-			g_object_set(G_OBJECT(element),
-					"autoprobe", TRUE, NULL);
-			if (g_object_class_find_property(klass,
-					"autoprobe-fps")) {
-				g_object_set(G_OBJECT(element),
-						"autoprobe-fps", TRUE, NULL);
-			}
-		}
-	}
-
-	gst_object_unref(element);
-	return ret;
-}
-
-/* get a GList of pairs name / device */
-static GList *
-get_device_items(const gchar *plugin)
-{
-	GList *ret = NULL;
-	GList *devices = get_devices(plugin);
-	GstElement *element = gst_element_factory_make(plugin, NULL);
-
-	if (element == NULL)
-		return NULL;
-
-	for(; devices ; devices = g_list_delete_link(devices, devices)) {
-		gchar *name;
-		g_object_set(G_OBJECT(element), "device", devices->data, NULL);
-		g_object_get(G_OBJECT(element), "device-name", &name, NULL);
-		ret = g_list_append(ret, name);
-		ret = g_list_append(ret, devices->data);
-	}
-
-	gst_object_unref(element);
-	return ret;
-}
-
-/*
- * Test functions to run video preview
- */
-static gboolean
-preview_video_bus_call(GstBus *bus, GstMessage *msg, gpointer pipeline)
-{
-	switch(GST_MESSAGE_TYPE(msg)) {
-		case GST_MESSAGE_EOS:
-			purple_debug_info("preview-video", "End of Stream\n");
-			break;
-		case GST_MESSAGE_ERROR: {
-			gchar *debug = NULL;
-			GError *err = NULL;
-
-			gst_message_parse_error(msg, &err, &debug);
-
-			purple_debug_error("preview-video", "Error: %s\n", err->message);
-			g_error_free(err);
-
-			if (debug) {
-				purple_debug_error("preview-video", "details: %s\n", debug);
-				g_free (debug);
-			}
-			break;
-		}
-		default:
-			return TRUE;
-	}
-
-	gst_element_set_state(pipeline, GST_STATE_NULL);
-	gst_object_unref(GST_PIPELINE(pipeline));
-	return FALSE;
-}
-
 static void
-preview_button_clicked(GtkWidget *widget, gpointer *data)
-{
-	const char *plugin = purple_prefs_get_string("/purple/media/video/plugin");
-	const char *device = purple_prefs_get_string("/purple/media/video/device");
-	GstBus *bus;
-
-	/* create a preview window... */
-	GstElement *pipeline = NULL;
-	GError *p_err = NULL;
-
-	gchar *test_pipeline_str = NULL;
-
-	if (strlen(device) > 0)
-		test_pipeline_str = g_strdup_printf("%s device=\"%s\" !" \
-						    " ffmpegcolorspace !" \
-						    " autovideosink",
-						    plugin, device);
-	else
-		test_pipeline_str = g_strdup_printf("%s ! ffmpegcolorspace !" \
-						    " autovideosink", plugin);
-
-	pipeline = gst_parse_launch (test_pipeline_str, &p_err);
-
-	g_free(test_pipeline_str);
-
-	if (pipeline == NULL) {
-		purple_debug_error("gtkprefs",
-			"Error starting preview: %s\n", p_err->message);
-		g_error_free(p_err);
-		return;
-	}
-
-	bus = gst_pipeline_get_bus(GST_PIPELINE(pipeline));
-	gst_bus_add_watch(bus, preview_video_bus_call, pipeline);
-	gst_object_unref(bus);
-
-	gst_element_set_state(pipeline, GST_STATE_PLAYING);
-}
-
-static void
-media_plugin_changed_cb(const gchar *name, PurplePrefType type,
-			gconstpointer value, gpointer data)
-{
-	GtkWidget *hbox = data;
-	GtkWidget *dd = NULL;
-	GtkWidget *preview_button = NULL;
-	const char *plugin = value;
-	const char *device = purple_prefs_get_string("/purple/media/video/device");
-	GList *video_items = get_device_items(plugin);
-	GList *list;
-
-	if (video_items == NULL) {
-		video_items = g_list_prepend(video_items, g_strdup(""));
-		video_items = g_list_prepend(video_items, g_strdup("Default"));
-	}
-
-	if (g_list_find(video_items, device) == NULL)
-	{
-		purple_prefs_set_string("/purple/media/video/device", 
-					g_list_next(video_items)->data);
-	}
-
-	list = gtk_container_get_children(GTK_CONTAINER(hbox));
-
-	while (list) {
-		gtk_widget_destroy(list->data);
-		list = g_list_delete_link(list, list);
-	}
-
-	dd = pidgin_prefs_dropdown_from_list(hbox, _("_Device:"), PURPLE_PREF_STRING,
-					     "/purple/media/video/device",
-					     video_items);
-
-	gtk_misc_set_alignment(GTK_MISC(dd), 0, 0.5);
-
-	preview_button = gtk_button_new_with_mnemonic(_("_Preview"));
-	g_signal_connect(G_OBJECT(preview_button), "clicked",
-			 G_CALLBACK(preview_button_clicked), NULL);
-
-	gtk_container_add(GTK_CONTAINER(hbox), preview_button);
-
-	gtk_widget_show_all(hbox);
-}
-
-static GtkWidget *
-media_page()
-{
-	GtkWidget *ret;
-	GtkWidget *vbox;
-	GtkWidget *hbox;
-	GtkWidget *dd;
-	GtkWidget *preview_button;
-	GtkWidget *sw;
-	GtkSizeGroup *sg, *sg2;
-	const char *plugin = purple_prefs_get_string("/purple/media/video/plugin");
-	const char *device = purple_prefs_get_string("/purple/media/video/device");
-	GList *video_items = get_device_items(plugin);
-	GList *audio_items = get_device_items("alsasrc");
-
-	if (video_items == NULL) {
-		video_items = g_list_prepend(video_items, "");
-		video_items = g_list_prepend(video_items, "Default");
-	}
-
-	if (g_list_find(video_items, device) == NULL)
-	{
-		purple_prefs_set_string("/purple/media/video/device", 
-					g_list_next(video_items)->data);
-	}
-
-	ret = gtk_vbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);
-	gtk_container_set_border_width (GTK_CONTAINER (ret), PIDGIN_HIG_BORDER);
-
-	sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
-	sg2 = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
-
-	vbox = pidgin_make_frame (ret, _("Video Input"));
-	gtk_size_group_add_widget(sg2, vbox);
-
-	hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
-	dd = pidgin_prefs_dropdown(vbox, _("_Plugin:"), PURPLE_PREF_STRING,
-				   "/purple/media/video/plugin",
-				   _("Default"), "gconfvideosrc",
-				   _("Video4Linux"), "v4lsrc",
-				   _("Video4Linux2"), "v4l2src",
-				   _("Video Test Source"), "videotestsrc",
-				   NULL);
-
-	gtk_size_group_add_widget(sg, dd);
-	gtk_misc_set_alignment(GTK_MISC(dd), 0, 0.5);
-
-	hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
-	dd = pidgin_prefs_dropdown_from_list(hbox, _("Device:"), PURPLE_PREF_STRING,
-			"/purple/media/video/device",
-			video_items);
-
-	purple_prefs_connect_callback(prefs, "/purple/media/video/plugin",
-				      media_plugin_changed_cb, hbox);
-
-	g_signal_connect_swapped(hbox, "destroy",
-				 G_CALLBACK(purple_prefs_disconnect_by_handle), hbox);
-
-	gtk_size_group_add_widget(sg, dd);
-	gtk_misc_set_alignment(GTK_MISC(dd), 0, 0.5);
-
-	preview_button = gtk_button_new_with_mnemonic(_("_Preview"));
-	g_signal_connect(G_OBJECT(preview_button), "clicked",
-			G_CALLBACK(preview_button_clicked), NULL);
-
-	gtk_container_add(GTK_CONTAINER(hbox), preview_button);
-	gtk_container_add(GTK_CONTAINER(vbox), hbox);
-
-	vbox = pidgin_make_frame (ret, _("Audio Input"));
-	gtk_size_group_add_widget(sg2, vbox);
-	dd = pidgin_prefs_dropdown_from_list(vbox, _("Device:"), PURPLE_PREF_STRING,
-			"/purple/media/audio/device",
-			audio_items);
-
-	gtk_size_group_add_widget(sg, dd);
-	gtk_misc_set_alignment(GTK_MISC(dd), 0, 0.5);
-
-	gtk_widget_show_all(ret);
-
-	return ret;
-}
-
-#endif	/* USE_VV */
-
-static void
 set_idle_away(PurpleSavedStatus *status)
 {
 	purple_prefs_set_int("/purple/savedstatus/idleaway", purple_savedstatus_get_creation_time(status));
@@ -2839,10 +2521,6 @@ static void prefs_notebook_init(void) {
 	prefs_notebook_add_page(_("Conversations"), conv_page(), notebook_page++);
 	prefs_notebook_add_page(_("Smiley Themes"), theme_page(), notebook_page++);
 	prefs_notebook_add_page(_("Sounds"), sound_page(), notebook_page++);
-
-#ifdef USE_VV
-	prefs_notebook_add_page(_("Media"), media_page(), notebook_page++);
-#endif	
 	prefs_notebook_add_page(_("Network"), network_page(), notebook_page++);
 #ifndef _WIN32
 	/* We use the registered default browser in windows */
@@ -2979,18 +2657,6 @@ pidgin_prefs_init(void)
 	purple_prefs_connect_callback(prefs, PIDGIN_PREFS_ROOT "/smileys/theme",
 								smiley_theme_pref_cb, NULL);
 
-#ifdef USE_VV
-	purple_prefs_add_none("/purple/media");
-	purple_prefs_add_none("/purple/media/video");
-	purple_prefs_add_string("/purple/media/video/plugin", "gconfvideosrc");
-	purple_prefs_add_string("/purple/media/video/device", "");
-	purple_prefs_add_none("/purple/media/audio");
-	purple_prefs_add_string("/purple/media/audio/device", "");
-	purple_prefs_add_none("/purple/media/audio/volume");
-	purple_prefs_add_int("/purple/media/audio/volume/input", 10);
-	purple_prefs_add_int("/purple/media/audio/volume/output", 10);
-#endif /* USE_VV */
-
 	pidgin_prefs_update_old();
 }
 


More information about the Commits mailing list