Remove volume option from Finch and Pidgin preferences

Thu, 07 Jan 2016 22:27:06 -0600

author
Mike Ruprecht <cmaiku@gmail.com>
date
Thu, 07 Jan 2016 22:27:06 -0600
changeset 37519
09ff1d312b2a
parent 37514
ad2ee74b913a
child 37520
3a3c1683c4cf

Remove volume option from Finch and Pidgin preferences

The volume option in Pidgin and Finch both translate to GStreamer as
a range of 0.0 to 2.0. GStreamer's playbin element has a range of 0.0
to 10.0, but 1.0 is 100% volume. With PulseAudio, when using flat
volumes, it sets the system volume to the highest volumed, playing
stream. However, this only happens when explicitly setting the volume
on the GstPulseSink, which in this case happens through GstPlayBin.
With the default preference in Pidgin and Finch being 1.0,
100% volume, this causes PulseAudio to set the system volume to
100% each time a Pidgin or Finch notification sounds. It was
determined that these days, such an option probably isn't very
useful, and can always be added again if necessary. So this patch
removes the volume option.

finch/gntsound.c file | annotate | diff | comparison | revisions
pidgin/gtkprefs.c file | annotate | diff | comparison | revisions
pidgin/gtksound.c file | annotate | diff | comparison | revisions
--- a/finch/gntsound.c	Thu Jan 07 14:06:04 2016 -0500
+++ b/finch/gntsound.c	Thu Jan 07 22:27:06 2016 -0600
@@ -48,7 +48,6 @@
 #include "gntentry.h"
 #include "gntcheckbox.h"
 #include "gntline.h"
-#include "gntslider.h"
 #include "gnttree.h"
 #include "gntfilesel.h"
 
@@ -65,7 +64,6 @@
 	GntWidget *command;
 	GntWidget *conv_focus;
 	GntWidget *while_status;
-	GntWidget *volume;
 	GntWidget *events;
 	GntWidget *window;
 	GntWidget *selector;
@@ -319,7 +317,6 @@
 	purple_prefs_add_bool(make_pref("/mute"), FALSE);
 	purple_prefs_add_path(make_pref("/command"), "");
 	purple_prefs_add_string(make_pref("/method"), "automatic");
-	purple_prefs_add_int(make_pref("/volume"), 50);
 }
 
 static void
@@ -458,7 +455,6 @@
 {
 	const char *method;
 #if defined(USE_GSTREAMER) && !defined(_WIN32)
-	float volume;
 	char *uri;
 	GstElement *sink = NULL;
 	GstElement *play = NULL;
@@ -516,7 +512,6 @@
 #ifdef USE_GSTREAMER
 	if (gst_init_failed)  /* Perhaps do beep instead? */
 		return;
-	volume = (float)(CLAMP(purple_prefs_get_int(make_pref("/volume")), 0, 100)) / 50;
 	if (!strcmp(method, "automatic")) {
 		if (purple_running_gnome()) {
 			sink = gst_element_factory_make("gconfaudiosink", "sink");
@@ -553,7 +548,6 @@
 	uri = g_strdup_printf("file://%s", filename);
 
 	g_object_set(G_OBJECT(play), "uri", uri,
-		                     "volume", volume,
 		                     "audio-sink", sink, NULL);
 
 	bus = gst_pipeline_get_bus(GST_PIPELINE(play));
@@ -655,7 +649,6 @@
 	purple_prefs_set_path(make_pref("/command"), gnt_entry_get_text(GNT_ENTRY(pref_dialog->command)));
 	purple_prefs_set_bool(make_pref("/conv_focus"), gnt_check_box_get_checked(GNT_CHECK_BOX(pref_dialog->conv_focus)));
 	purple_prefs_set_int("/purple/sound/while_status", GPOINTER_TO_INT(gnt_combo_box_get_selected_data(GNT_COMBO_BOX(pref_dialog->while_status))));
-	purple_prefs_set_int(make_pref("/volume"), gnt_slider_get_value(GNT_SLIDER(pref_dialog->volume)));
 
 	for (itr = gnt_tree_get_rows(GNT_TREE(pref_dialog->events)); itr; itr = itr->next) {
 		FinchSoundEvent * event = &sounds[GPOINTER_TO_INT(itr->data)];
@@ -688,34 +681,28 @@
 {
 	PurpleSoundEventID id = GPOINTER_TO_INT(gnt_tree_get_selection_data(GNT_TREE(pref_dialog->events)));
 	FinchSoundEvent * event = &sounds[id];
-	char *enabled, *file, *tmpfile, *volpref;
+	char *enabled, *file, *tmpfile;
 	gboolean temp_value;
-	int volume;
 
 	enabled = g_strdup_printf(FINCH_PREFS_ROOT "/sound/profiles/%s/enabled/%s",
 			finch_sound_get_active_profile(), event->pref);
 	file = g_strdup_printf(FINCH_PREFS_ROOT "/sound/profiles/%s/file/%s",
 			finch_sound_get_active_profile(), event->pref);
-	volpref = g_strdup(make_pref("/volume"));
 
 	temp_value = purple_prefs_get_bool(enabled);
 	tmpfile = g_strdup(purple_prefs_get_path(file));
-	volume = purple_prefs_get_int(volpref);
 
 	purple_prefs_set_path(file, event->file);
 	if (!temp_value) purple_prefs_set_bool(enabled, TRUE);
-	purple_prefs_set_int(volpref, gnt_slider_get_value(GNT_SLIDER(pref_dialog->volume)));
 
 	purple_sound_play_event(id, NULL);
 
 	if (!temp_value) purple_prefs_set_bool(enabled, FALSE);
 	purple_prefs_set_path(file, tmpfile);
-	purple_prefs_set_int(volpref, volume);
 
 	g_free(enabled);
 	g_free(file);
 	g_free(tmpfile);
-	g_free(volpref);
 }
 
 static void
@@ -791,8 +778,6 @@
 
 	gnt_combo_box_set_selected(GNT_COMBO_BOX(pref_dialog->while_status), GINT_TO_POINTER(purple_prefs_get_int("/purple" "/sound/while_status")));
 
-	gnt_slider_set_value(GNT_SLIDER(pref_dialog->volume), CLAMP(purple_prefs_get_int(make_pref("/volume")), 0, 100));
-
 	for (i = 0; i < PURPLE_NUM_SOUNDS; i++) {
 		FinchSoundEvent * event = &sounds[i];
 		gchar *boolpref;
@@ -892,7 +877,7 @@
 void
 finch_sounds_show_all(void)
 {
-	GntWidget *box, *tmpbox, *splitbox, *cmbox, *slider;
+	GntWidget *box, *tmpbox, *splitbox, *cmbox;
 	GntWidget *entry;
 	GntWidget *chkbox;
 	GntWidget *button;
@@ -1007,21 +992,6 @@
 	gnt_box_add_widget(GNT_BOX(tmpbox), cmbox);
 	gnt_box_add_widget(GNT_BOX(box), tmpbox);
 
-	tmpbox = gnt_hbox_new(TRUE);
-	gnt_box_set_pad(GNT_BOX(tmpbox), 0);
-	gnt_box_set_fill(GNT_BOX(tmpbox), FALSE);
-	gnt_box_add_widget(GNT_BOX(tmpbox), gnt_label_new(_("Volume(0-100):")));
-
-	pref_dialog->volume = slider = gnt_slider_new(FALSE, 100, 0);
-	gnt_slider_set_step(GNT_SLIDER(slider), 5);
-	gnt_slider_set_small_step(GNT_SLIDER(slider), 1);
-	gnt_slider_set_large_step(GNT_SLIDER(slider), 20);
-	label = gnt_label_new("");
-	gnt_slider_reflect_label(GNT_SLIDER(slider), GNT_LABEL(label));
-	gnt_box_set_pad(GNT_BOX(tmpbox), 1);
-	gnt_box_add_widget(GNT_BOX(tmpbox), slider);
-	gnt_box_add_widget(GNT_BOX(tmpbox), label);
-	gnt_box_add_widget(GNT_BOX(box), tmpbox);
 	gnt_box_add_widget(GNT_BOX(splitbox), box);
 
 	gnt_box_add_widget(GNT_BOX(win), splitbox);
@@ -1090,8 +1060,6 @@
 		return FALSE;
 	if (strcmp(method, "nosound") == 0)
 		return FALSE;
-	if (purple_prefs_get_int(make_pref("/volume")) <= 0)
-		return FALSE;
 
 	return TRUE;
 }
--- a/pidgin/gtkprefs.c	Thu Jan 07 14:06:04 2016 -0500
+++ b/pidgin/gtkprefs.c	Thu Jan 07 22:27:06 2016 -0600
@@ -2933,23 +2933,6 @@
 	gtk_widget_set_sensitive(vbox, strcmp(method, "none"));
 }
 
-#ifdef USE_GSTREAMER
-static void
-sound_changed3_cb(const char *name, PurplePrefType type,
-				  gconstpointer value, gpointer data)
-{
-	GtkWidget *hbox = data;
-	const char *method = value;
-
-	gtk_widget_set_sensitive(hbox,
-			!strcmp(method, "automatic") ||
-			!strcmp(method, "alsa") ||
-			!strcmp(method, "esd") ||
-			!strcmp(method, "waveform") ||
-			!strcmp(method, "directsound"));
-}
-#endif /* USE_GSTREAMER */
-
 
 static void
 event_toggled(GtkCellRendererToggle *cell, gchar *pth, gpointer data)
@@ -3059,35 +3042,6 @@
 		GINT_TO_POINTER(sound_row_sel));
 }
 
-#ifdef USE_GSTREAMER
-static gchar *
-prefs_sound_volume_format(GtkScale *scale, gdouble val)
-{
-	if(val < 15) {
-		return g_strdup_printf(_("Quietest"));
-	} else if(val < 30) {
-		return g_strdup_printf(_("Quieter"));
-	} else if(val < 45) {
-		return g_strdup_printf(_("Quiet"));
-	} else if(val < 55) {
-		return g_strdup_printf(_("Normal"));
-	} else if(val < 70) {
-		return g_strdup_printf(_("Loud"));
-	} else if(val < 85) {
-		return g_strdup_printf(_("Louder"));
-	} else {
-		return g_strdup_printf(_("Loudest"));
-	}
-}
-
-static void
-prefs_sound_volume_changed(GtkRange *range)
-{
-	int val = (int)gtk_range_get_value(GTK_RANGE(range));
-	purple_prefs_set_int(PIDGIN_PREFS_ROOT "/sound/volume", val);
-}
-#endif
-
 static void
 prefs_sound_sel(GtkTreeSelection *sel, GtkTreeModel *model)
 {
@@ -3138,9 +3092,6 @@
 {
 	GtkWidget *ret;
 	GtkWidget *vbox, *vbox2, *button, *parent, *parent_parent, *parent_parent_parent;
-#ifdef USE_GSTREAMER
-	GtkWidget *sw;
-#endif
 	GtkSizeGroup *sg;
 	GtkTreeIter iter;
 	GtkWidget *event_view;
@@ -3217,25 +3168,6 @@
 				_("Always"), PURPLE_SOUND_STATUS_ALWAYS,
 				NULL);
 
-#ifdef USE_GSTREAMER
-	sw = gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL,
-		0.0, 100.0, 5.0);
-	gtk_range_set_increments(GTK_RANGE(sw), 5.0, 25.0);
-	gtk_range_set_value(GTK_RANGE(sw), purple_prefs_get_int(PIDGIN_PREFS_ROOT "/sound/volume"));
-	g_signal_connect (G_OBJECT (sw), "format-value",
-			  G_CALLBACK (prefs_sound_volume_format),
-			  NULL);
-	g_signal_connect (G_OBJECT (sw), "value-changed",
-			  G_CALLBACK (prefs_sound_volume_changed),
-			  NULL);
-	hbox = pidgin_add_widget_to_vbox(GTK_BOX(vbox), _("V_olume:"), NULL, sw, TRUE, NULL);
-
-	purple_prefs_connect_callback(prefs, PIDGIN_PREFS_ROOT "/sound/method",
-								sound_changed3_cb, hbox);
-	sound_changed3_cb(PIDGIN_PREFS_ROOT "/sound/method", PURPLE_PREF_STRING,
-			  purple_prefs_get_string(PIDGIN_PREFS_ROOT "/sound/method"), hbox);
-#endif
-
 	gtk_widget_set_sensitive(vbox,
 			strcmp(purple_prefs_get_string(PIDGIN_PREFS_ROOT "/sound/method"), "none"));
 	purple_prefs_connect_callback(prefs, PIDGIN_PREFS_ROOT "/sound/method",
--- a/pidgin/gtksound.c	Thu Jan 07 14:06:04 2016 -0500
+++ b/pidgin/gtksound.c	Thu Jan 07 22:27:06 2016 -0600
@@ -311,7 +311,6 @@
 	purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/sound/mute", FALSE);
 	purple_prefs_add_path(PIDGIN_PREFS_ROOT "/sound/command", "");
 	purple_prefs_add_string(PIDGIN_PREFS_ROOT "/sound/method", "automatic");
-	purple_prefs_add_int(PIDGIN_PREFS_ROOT "/sound/volume", 50);
 
 #ifdef USE_GSTREAMER
 	purple_debug_info("sound", "Initializing sound output drivers.\n");
@@ -439,7 +438,6 @@
 {
 	const char *method;
 #ifdef USE_GSTREAMER
-	float volume;
 	char *uri;
 	GstElement *sink = NULL;
 	GstElement *play = NULL;
@@ -522,7 +520,6 @@
 #ifdef USE_GSTREAMER
 	if (gst_init_failed)  /* Perhaps do gdk_beep instead? */
 		return;
-	volume = (float)(CLAMP(purple_prefs_get_int(PIDGIN_PREFS_ROOT "/sound/volume"),0,100)) / 50;
 #ifdef _WIN32
 	if (!strcmp(method, "automatic")) {
 		sink = gst_element_factory_make("directsoundsink", "sink");
@@ -568,7 +565,6 @@
 #endif
 
 	g_object_set(G_OBJECT(play), "uri", uri,
-		                     "volume", volume,
 		                     "audio-sink", sink, NULL);
 
 	bus = gst_pipeline_get_bus(GST_PIPELINE(play));

mercurial