# HG changeset patch # User Mike Ruprecht # Date 1452227226 21600 # Node ID 09ff1d312b2ae510e7928314486e0c755dba5153 # Parent ad2ee74b913ae50e170b1d06413fa2a494a9ee76 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. diff -r ad2ee74b913a -r 09ff1d312b2a finch/gntsound.c --- 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; } diff -r ad2ee74b913a -r 09ff1d312b2a pidgin/gtkprefs.c --- 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", diff -r ad2ee74b913a -r 09ff1d312b2a pidgin/gtksound.c --- 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));