Index: src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerView.cs =================================================================== --- src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerView.cs (Revision 3473) +++ src/Core/Banshee.ThickClient/Banshee.Equalizer.Gui/EqualizerView.cs (Arbeitskopie) @@ -60,12 +60,6 @@ { Spacing = 10; - // amplifier_scale's values must be divisible by 100 to get *real* val. eg 100 == 1, 40 == 0.4, 1 == 0.01 - amplifier_scale = new EqualizerBandScale (0, 100, 5, 150, "Preamp"); - amplifier_scale.ValueChanged += OnAmplifierValueChanged; - amplifier_scale.Show (); - PackStart (amplifier_scale, false, false, 0); - int[] br = ((IEqualizer) ServiceManager.PlayerEngine.ActiveEngine).BandRange; int mid = (br[0] + br[1]) / 2; @@ -73,6 +67,11 @@ range[1] = mid; range[2] = br[1]; + amplifier_scale = new EqualizerBandScale (0, range[1] * 10, range[0] * 10, range[2] * 10, "Preamp"); + amplifier_scale.ValueChanged += OnAmplifierValueChanged; + amplifier_scale.Show (); + PackStart (amplifier_scale, false, false, 0); + EqualizerLevelsBox eq_levels = new EqualizerLevelsBox ( FormatDecibelString (range[2]), FormatDecibelString (range[1]), @@ -146,7 +145,7 @@ { EqualizerBandScale scale = o as EqualizerBandScale; if (active_eq != null) { - double val = (double) scale.Value / 100D; + double val = (double) scale.Value / 10D; active_eq.AmplifierLevel = val; } Index: src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs =================================================================== --- src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs (Revision 3473) +++ src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs (Arbeitskopie) @@ -317,7 +317,11 @@ } public double AmplifierLevel { - set { gst_equalizer_set_preamp_level (handle, value); } + set { + double db = Math.Pow (10.0, value/20.0); + + gst_equalizer_set_preamp_level (handle, db); + } } public int [] BandRange {