Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package pulseeffects for openSUSE:Factory 
checked in at 2021-05-15 23:16:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pulseeffects (Old)
 and      /work/SRC/openSUSE:Factory/.pulseeffects.new.2988 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "pulseeffects"

Sat May 15 23:16:12 2021 rev:10 rq:893248 version:4.8.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/pulseeffects/pulseeffects.changes        
2021-01-13 18:30:36.213874174 +0100
+++ /work/SRC/openSUSE:Factory/.pulseeffects.new.2988/pulseeffects.changes      
2021-05-15 23:17:11.336501455 +0200
@@ -1,0 +2,21 @@
+Sat May 15 00:18:19 UTC 2021 - Konstantin Voinov <k...@kott.no-ip.biz>
+
+- Update to version 4.8.5
+  Added:
+  * Improved compatibility with dconf 0.40. Now our plugins should
+    be enabled when using this version. 
+
+-------------------------------------------------------------------
+Wed Mar  3 17:55:24 UTC 2021 - Antonio Larrosa <alarr...@suse.com>
+
+- Revert the last change. pulseeffects requires the real pulseaudio
+  so keep the Requires: pulseaudio (boo#1182730).
+
+-------------------------------------------------------------------
+Thu Feb 25 11:48:57 UTC 2021 - Antonio Larrosa <alarr...@suse.com>
+
+- Require the pulseaudio-daemon capability instead of the
+  pulseaudio package, so alternative implementations can be used
+  (boo#1182730).
+
+-------------------------------------------------------------------

Old:
----
  pulseeffects-4.8.4.tar.gz

New:
----
  pulseeffects-4.8.5.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ pulseeffects.spec ++++++
--- /var/tmp/diff_new_pack.O0JH0l/_old  2021-05-15 23:17:11.808499611 +0200
+++ /var/tmp/diff_new_pack.O0JH0l/_new  2021-05-15 23:17:11.808499611 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           pulseeffects
-Version:        4.8.4
+Version:        4.8.5
 Release:        0
 Summary:        Audio effects for Pulseaudio applications
 License:        GPL-3.0-or-later

++++++ pulseeffects-4.8.4.tar.gz -> pulseeffects-4.8.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/CHANGELOG.md 
new/pulseeffects-4.8.5/CHANGELOG.md
--- old/pulseeffects-4.8.4/CHANGELOG.md 2020-12-21 16:49:34.000000000 +0100
+++ new/pulseeffects-4.8.5/CHANGELOG.md 2021-03-14 18:42:56.000000000 +0100
@@ -2,19 +2,28 @@
 
 ## [Unreleased]
 
+## [4.8.5]
+
+### Added
+
+- Improved compatibility with dconf 0.40. Now our plugins should be enabled 
when using this version.
+
 ## [4.8.4]
 
 ### Added
+
 - Added Allpass filter in Equalizer plugin.
 
 ### Fixed
+
 - The equalizer UI is now correctly shown when a profile with 30 bands is 
loaded at startup.
 - Added a workaround for systems that were crashing because the locale is not 
correctly set at system level.
 
 ### Note to packagers
-- This is the last release supporting Pulseaudio. The following PulseEffects 
releases will be based on 
-the new Pipewire multimedia server and only fixes to critical bugs will be 
backported to the legacy 
-pulseaudio branch https://github.com/wwmm/pulseeffects/tree/pulseaudio-legacy.
+
+- This is the last release supporting Pulseaudio. The following PulseEffects 
releases will be based on
+  the new Pipewire multimedia server and only fixes to critical bugs will be 
backported to the legacy
+  pulseaudio branch 
https://github.com/wwmm/pulseeffects/tree/pulseaudio-legacy.
 
 ## [4.8.3]
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/PKGBUILD 
new/pulseeffects-4.8.5/PKGBUILD
--- old/pulseeffects-4.8.4/PKGBUILD     2020-12-21 16:49:34.000000000 +0100
+++ new/pulseeffects-4.8.5/PKGBUILD     2021-03-14 18:42:56.000000000 +0100
@@ -3,7 +3,7 @@
 # Contributor: Wellington <wellingtonwall...@gmail.com>
 
 pkgname=pulseeffects-legacy-git
-pkgver=4.7.1.r2.g38355f59
+pkgver=4.8.4.r0.gcef23707
 pkgrel=1
 pkgdesc='Audio Effects for Pulseaudio Applications'
 arch=(x86_64)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/README.md 
new/pulseeffects-4.8.5/README.md
--- old/pulseeffects-4.8.4/README.md    2020-12-21 16:49:34.000000000 +0100
+++ new/pulseeffects-4.8.5/README.md    2021-03-14 18:42:56.000000000 +0100
@@ -1,9 +1,8 @@
-# PulseEffects
+# PulseEffects Legacy PulseAudio
 
-[![CircleCI](https://circleci.com/gh/wwmm/pulseeffects.svg?style=shield)](https://circleci.com/gh/wwmm/pulseeffects)
 
[![Donate](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/wwmm/donate)
 
-Audio effects for Pulseaudio applications.
+This is the old PulseEffects version supporting plain PulseAudio server, not 
Pipewire. This branch is in maintenance mode and no longer under development.
 
 ![](images/pulseeffects.png)
 ![](images/equalizer1.png)
@@ -58,6 +57,7 @@
 next to the plugin label at the left side. To be able to use all plugins you
 must have the following installed in your system:
 
+- [PulseAudio](https://gitlab.freedesktop.org/pulseaudio/pulseaudio). Version 
13 or higher
 - [GStreamer plugins "Good"](https://github.com/GStreamer/gst-plugins-good). 
Version 1.12.5 or higher
 - [GStreamer plugins "Bad"](https://github.com/GStreamer/gst-plugins-bad). 
Version 1.12.5 or higher
 - [Linux Studio plugins](http://lsp-plug.in/?page=home). Version 1.1.24 or 
higher.
@@ -72,7 +72,8 @@
 
 ## Donate
 
-You can help me to keep developing PulseEffects through donations. Any amount 
will be greatly appreciated :-)
+You can help Wellington Wallace to keep developing PulseEffects through 
donations.
+Any amount will be greatly appreciated :-)
 
 <table>
   <tr>
@@ -92,41 +93,6 @@
 
 ## Installation
 
-### GNU/Linux packages
-
-- [Arch 
Linux](https://www.archlinux.org/packages/community/x86_64/pulseeffects/) / 
[AUR Git version](https://aur.archlinux.org/packages/pulseeffects-git/)
-- [Void 
Linux](https://github.com/void-linux/void-packages/blob/master/srcpkgs/pulseeffects/template)
-- [Gentoo](https://packages.gentoo.org/packages/media-sound/pulseeffects)
-- [ROSA](https://abf.io/import/pulseeffects/)
-- [ALT Linux](https://packages.altlinux.org/Sisyphus/srpms/pulseeffects/)
-- [Fedora GNU/Linux](https://apps.fedoraproject.org/packages/pulseeffects)
-- [CRUX](https://crux.nu/portdb/?a=search&q=pulseeffects)
-- [openSUSE](https://software.opensuse.org/package/pulseeffects)
-- 
[NixOS](https://search.nixos.org/packages?channel=unstable&show=pulseeffects&query=pulseeffects)
-- [Debian (buster)](https://packages.debian.org/buster-backports/pulseeffects) 
/ [Debian (bullseye)](https://packages.debian.org/bullseye/pulseeffects)
-
-#### Community packages
-
-These are community maintained repositories of distribution packages. You can
-find more information about these in the
-[wiki](https://github.com/wwmm/pulseeffects/wiki/Package-Repositories#package-repositories).
-
-- [Ubuntu and 
Debian](https://github.com/wwmm/pulseeffects/wiki/Package-Repositories#debian--ubuntu)
-
-### Flatpak
-
-[Flatpak](https://flatpak.org/) packages support multiple Linux distributions 
and are sandboxed.
-
-Stable releases are hosted on
-[Flathub](https://flathub.org/apps/details/com.github.wwmm.pulseeffects):
-
-```
-flatpak remote-add --if-not-exists flathub 
https://flathub.org/repo/flathub.flatpakrepo
-flatpak install flathub com.github.wwmm.pulseeffects
-```
-
-#### Installing from source
-
 See the wiki: [Installing from 
Source](https://github.com/wwmm/pulseeffects/wiki/Installation-from-Source), 
for detailed instructions.
 
 ## Documentation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pulseeffects-4.8.4/data/com.github.wwmm.pulseeffects.appdata.xml.in 
new/pulseeffects-4.8.5/data/com.github.wwmm.pulseeffects.appdata.xml.in
--- old/pulseeffects-4.8.4/data/com.github.wwmm.pulseeffects.appdata.xml.in     
2020-12-21 16:49:34.000000000 +0100
+++ new/pulseeffects-4.8.5/data/com.github.wwmm.pulseeffects.appdata.xml.in     
2021-03-14 18:42:56.000000000 +0100
@@ -57,6 +57,7 @@
     </screenshot>
   </screenshots>
   <releases>
+    <release version="4.8.5" date="2021-03-14"/>
     <release version="4.8.4" date="2020-12-21"/>
     <release version="4.8.3" date="2020-12-03"/>
     <release version="4.8.2" date="2020-09-21"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/include/app_info_ui.hpp 
new/pulseeffects-4.8.5/include/app_info_ui.hpp
--- old/pulseeffects-4.8.4/include/app_info_ui.hpp      2020-12-21 
16:49:34.000000000 +0100
+++ new/pulseeffects-4.8.5/include/app_info_ui.hpp      2021-03-14 
18:42:56.000000000 +0100
@@ -74,7 +74,7 @@
  private:
   std::string log_tag = "app_info_ui: ";
 
-  std::locale global_locale;
+  static std::locale global_locale;
 
   bool running = true, is_enabled = true, is_blocklisted = true, pre_bl_state 
= true;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/include/application_ui.hpp 
new/pulseeffects-4.8.5/include/application_ui.hpp
--- old/pulseeffects-4.8.4/include/application_ui.hpp   2020-12-21 
16:49:34.000000000 +0100
+++ new/pulseeffects-4.8.5/include/application_ui.hpp   2021-03-14 
18:42:56.000000000 +0100
@@ -20,23 +20,34 @@
 #ifndef APPLICATION_WINDOW_HPP
 #define APPLICATION_WINDOW_HPP
 
+#include <glibmm/i18n.h>
 #include <gtkmm/applicationwindow.h>
 #include <gtkmm/builder.h>
 #include <gtkmm/button.h>
+#include <gtkmm/cssprovider.h>
 #include <gtkmm/grid.h>
+#include <gtkmm/icontheme.h>
 #include <gtkmm/headerbar.h>
 #include <gtkmm/image.h>
 #include <gtkmm/label.h>
 #include <gtkmm/menubutton.h>
 #include <gtkmm/popover.h>
+#include <gtkmm/settings.h>
 #include <gtkmm/stack.h>
 #include <gtkmm/togglebutton.h>
+#include <memory>
 #include "application.hpp"
+#include "blocklist_settings_ui.hpp"
 #include "calibration_ui.hpp"
+#include "general_settings_ui.hpp"
 #include "presets_menu_ui.hpp"
 #include "pulse_info_ui.hpp"
+#include "pulse_settings_ui.hpp"
 #include "sink_input_effects_ui.hpp"
 #include "source_output_effects_ui.hpp"
+#include "spectrum_settings_ui.hpp"
+#include "util.hpp"
+
 
 class ApplicationUi : public Gtk::ApplicationWindow {
  public:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/include/effects_base_ui.hpp 
new/pulseeffects-4.8.5/include/effects_base_ui.hpp
--- old/pulseeffects-4.8.4/include/effects_base_ui.hpp  2020-12-21 
16:49:34.000000000 +0100
+++ new/pulseeffects-4.8.5/include/effects_base_ui.hpp  2021-03-14 
18:42:56.000000000 +0100
@@ -21,6 +21,7 @@
 #define EFFECTS_BASE_UI_HPP
 
 #include <giomm/settings.h>
+#include <glibmm/i18n.h>
 #include <gtkmm/box.h>
 #include <gtkmm/builder.h>
 #include <gtkmm/eventbox.h>
@@ -33,6 +34,7 @@
 #include "app_info_ui.hpp"
 #include "blocklist_settings_ui.hpp"
 #include "preset_type.hpp"
+#include "plugin_ui_base.hpp"
 #include "pulse_manager.hpp"
 #include "spectrum_ui.hpp"
 #include "util.hpp"
@@ -165,7 +167,7 @@
  private:
   Gtk::Box* placeholder_spectrum = nullptr;
 
-  std::locale global_locale;
+  static std::locale global_locale;
 
   auto on_listbox_sort(Gtk::ListBoxRow* row1, Gtk::ListBoxRow* row2) -> int;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/include/plugin_ui_base.hpp 
new/pulseeffects-4.8.5/include/plugin_ui_base.hpp
--- old/pulseeffects-4.8.4/include/plugin_ui_base.hpp   2020-12-21 
16:49:34.000000000 +0100
+++ new/pulseeffects-4.8.5/include/plugin_ui_base.hpp   2021-03-14 
18:42:56.000000000 +0100
@@ -68,10 +68,6 @@
   void on_new_input_level_db(const std::array<double, 2>& peak);
   void on_new_output_level_db(const std::array<double, 2>& peak);
 
-  auto level_to_localized_string(const double& value, const int& places) -> 
std::string;
-  auto level_to_localized_string(const float& value, const int& places) -> 
std::string;
-  auto string_to_float(const std::string& value) -> float;
-
   // reset plugin method
   virtual void reset() = 0;
 
@@ -102,14 +98,28 @@
     msg.imbue(global_locale);
     msg.precision(places);
 
-    msg << ((value > 0.0) ? "+" : "") << std::fixed << value;
+    msg << ((value > 0.0F) ? "+" : "") << std::fixed << value;
+
+    return msg.str();
+  }
+
+  template <typename T>
+  auto level_to_localized_string(const T& value, const int& places) -> 
std::string {
+    std::ostringstream msg;
+
+    msg.imbue(global_locale);
+    msg.precision(places);
+
+    msg << std::fixed << value;
 
     return msg.str();
   }
 
+  auto string_to_float(const std::string& value) -> float;
+
  private:
-  std::locale global_locale;
-  std::locale c_locale = std::locale();
+  static std::locale global_locale;
+  static std::locale c_locale;
 
   template <typename T1, typename T2, typename T3, typename T4>
   void update_level(const T1& w_left,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/include/spectrum_ui.hpp 
new/pulseeffects-4.8.5/include/spectrum_ui.hpp
--- old/pulseeffects-4.8.4/include/spectrum_ui.hpp      2020-12-21 
16:49:34.000000000 +0100
+++ new/pulseeffects-4.8.5/include/spectrum_ui.hpp      2021-03-14 
18:42:56.000000000 +0100
@@ -25,6 +25,7 @@
 #include <gtkmm/builder.h>
 #include <gtkmm/drawingarea.h>
 #include <gtkmm/grid.h>
+#include "util.hpp"
 
 class SpectrumUi : public Gtk::Grid {
  public:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/include/util.hpp 
new/pulseeffects-4.8.5/include/util.hpp
--- old/pulseeffects-4.8.4/include/util.hpp     2020-12-21 16:49:34.000000000 
+0100
+++ new/pulseeffects-4.8.5/include/util.hpp     2021-03-14 18:42:56.000000000 
+0100
@@ -20,6 +20,7 @@
 #ifndef UTIL_HPP
 #define UTIL_HPP
 
+#include <cmath>
 #include <glib-object.h>
 #include <glib.h>
 #include <iostream>
@@ -30,9 +31,7 @@
 namespace util {
 
 const float minimum_db_level = -99.0F;
-const double minimum_db_d_level = -99.0;
 const float minimum_linear_level = 0.00001F;
-const double minimum_linear_d_level = 0.00001;
 
 void debug(const std::string& s);
 void error(const std::string& s);
@@ -40,14 +39,21 @@
 void warning(const std::string& s);
 void info(const std::string& s);
 
+auto get_global_locale() -> std::locale;
+auto get_c_locale() -> std::locale;
+
 auto logspace(const float& start, const float& stop, const uint& npoints) -> 
std::vector<float>;
 auto linspace(const float& start, const float& stop, const uint& npoints) -> 
std::vector<float>;
 
-auto linear_to_db(const float& amp) -> float;
-auto linear_to_db(const double& amp) -> double;
-
-auto db_to_linear(const float& db) -> float;
-auto db_to_linear(const double& db) -> double;
+template <typename T>
+auto linear_to_db(const T& amp) -> T {
+  return (amp >= minimum_linear_level) ? (20.0F * log10f(amp)) : 
minimum_db_level;
+}
+
+template <typename T>
+auto db_to_linear(const T& db) -> T {
+  return expf((db / 20.0F) * logf(10.0F));
+}
 
 auto db20_gain_to_linear(GValue* value, GVariant* variant, gpointer user_data) 
-> gboolean;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/meson.build 
new/pulseeffects-4.8.5/meson.build
--- old/pulseeffects-4.8.4/meson.build  2020-12-21 16:49:34.000000000 +0100
+++ new/pulseeffects-4.8.5/meson.build  2021-03-14 18:42:56.000000000 +0100
@@ -3,7 +3,7 @@
        'c',
        'cpp',
        default_options : ['cpp_std=c++17','buildtype=debugoptimized'],
-       version: '4.8.4',
+       version: '4.8.5',
        meson_version: '>= 0.40.0'
 )
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/app_info_ui.cpp 
new/pulseeffects-4.8.5/src/app_info_ui.cpp
--- old/pulseeffects-4.8.4/src/app_info_ui.cpp  2020-12-21 16:49:34.000000000 
+0100
+++ new/pulseeffects-4.8.5/src/app_info_ui.cpp  2021-03-14 18:42:56.000000000 
+0100
@@ -19,19 +19,13 @@
 
 #include "app_info_ui.hpp"
 
+std::locale AppInfoUi::global_locale = util::get_global_locale();
+
 AppInfoUi::AppInfoUi(BaseObjectType* cobject,
                      const Glib::RefPtr<Gtk::Builder>& builder,
                      std::shared_ptr<AppInfo> info,
                      PulseManager* pulse_manager)
     : Gtk::Grid(cobject), app_info(std::move(info)), pm(pulse_manager) {
-  // set locale (workaround for #849)
-
-  try {
-    global_locale = std::locale("");
-  } catch (const std::exception& e) {
-    global_locale = std::locale();
-  }
-
   // loading glade widgets
 
   builder->get_widget("enable", enable);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/application_ui.cpp 
new/pulseeffects-4.8.5/src/application_ui.cpp
--- old/pulseeffects-4.8.4/src/application_ui.cpp       2020-12-21 
16:49:34.000000000 +0100
+++ new/pulseeffects-4.8.5/src/application_ui.cpp       2021-03-14 
18:42:56.000000000 +0100
@@ -18,34 +18,16 @@
  */
 
 #include "application_ui.hpp"
-#include <glibmm/i18n.h>
-#include <gtkmm/cssprovider.h>
-#include <gtkmm/icontheme.h>
-#include <gtkmm/settings.h>
-#include <memory>
-#include "blocklist_settings_ui.hpp"
-#include "calibration_ui.hpp"
-#include "general_settings_ui.hpp"
-#include "pulse_settings_ui.hpp"
-#include "spectrum_settings_ui.hpp"
-#include "util.hpp"
 
 ApplicationUi::ApplicationUi(BaseObjectType* cobject,
                              const Glib::RefPtr<Gtk::Builder>& builder,
                              Application* application)
-    : Gtk::ApplicationWindow(cobject), app(application), 
settings(app->settings) {
+    : Gtk::ApplicationWindow(cobject), app(application),
+      settings(app->settings), global_locale(util::get_global_locale()) {
   apply_css_style("custom.css");
 
   
Gtk::IconTheme::get_default()->add_resource_path("/com/github/wwmm/pulseeffects/icons");
 
-  // set locale (workaround for #849)
-
-  try {
-    global_locale = std::locale("");
-  } catch (const std::exception& e) {
-    global_locale = std::locale();
-  }
-
   // loading glade widgets
 
   builder->get_widget("stack", stack);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/autogain.cpp 
new/pulseeffects-4.8.5/src/autogain.cpp
--- old/pulseeffects-4.8.4/src/autogain.cpp     2020-12-21 16:49:34.000000000 
+0100
+++ new/pulseeffects-4.8.5/src/autogain.cpp     2021-03-14 18:42:56.000000000 
+0100
@@ -128,11 +128,9 @@
     g_settings_bind_with_mapping(settings, "output-gain", output_gain, 
"volume", G_SETTINGS_BIND_DEFAULT,
                                  util::db20_gain_to_linear_double, 
util::linear_double_gain_to_db20, nullptr, nullptr);
 
-    // useless write just to force callback call
-
-    auto enable = g_settings_get_boolean(settings, "state");
-
-    g_settings_set_boolean(settings, "state", enable);
+    if (g_settings_get_boolean(settings, "state") != 0) {
+      enable();
+    }
   }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/bass_enhancer.cpp 
new/pulseeffects-4.8.5/src/bass_enhancer.cpp
--- old/pulseeffects-4.8.4/src/bass_enhancer.cpp        2020-12-21 
16:49:34.000000000 +0100
+++ new/pulseeffects-4.8.5/src/bass_enhancer.cpp        2021-03-14 
18:42:56.000000000 +0100
@@ -79,11 +79,9 @@
     g_settings_bind(settings, "post-messages", in_level, "post-messages", 
G_SETTINGS_BIND_DEFAULT);
     g_settings_bind(settings, "post-messages", out_level, "post-messages", 
G_SETTINGS_BIND_DEFAULT);
 
-    // useless write just to force callback call
-
-    auto enable = g_settings_get_boolean(settings, "state");
-
-    g_settings_set_boolean(settings, "state", enable);
+    if (g_settings_get_boolean(settings, "state") != 0) {
+      enable();
+    }
   }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/calibration_ui.cpp 
new/pulseeffects-4.8.5/src/calibration_ui.cpp
--- old/pulseeffects-4.8.4/src/calibration_ui.cpp       2020-12-21 
16:49:34.000000000 +0100
+++ new/pulseeffects-4.8.5/src/calibration_ui.cpp       2021-03-14 
18:42:56.000000000 +0100
@@ -20,15 +20,7 @@
 #include "calibration_ui.hpp"
 
 CalibrationUi::CalibrationUi(BaseObjectType* cobject, const 
Glib::RefPtr<Gtk::Builder>& builder)
-    : Gtk::Window(cobject) {
-  // set locale (workaround for #849)
-
-  try {
-    global_locale = std::locale("");
-  } catch (const std::exception& e) {
-    global_locale = std::locale();
-  }
-
+    : Gtk::Window(cobject), global_locale(util::get_global_locale()) {
   // loading glade widgets
 
   builder->get_widget("stack", stack);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/compressor.cpp 
new/pulseeffects-4.8.5/src/compressor.cpp
--- old/pulseeffects-4.8.4/src/compressor.cpp   2020-12-21 16:49:34.000000000 
+0100
+++ new/pulseeffects-4.8.5/src/compressor.cpp   2021-03-14 18:42:56.000000000 
+0100
@@ -146,11 +146,9 @@
 
     g_signal_connect(settings, "changed::post-messages", 
G_CALLBACK(on_post_messages_changed), this);
 
-    // useless write just to force callback call
-
-    auto enable = g_settings_get_boolean(settings, "state");
-
-    g_settings_set_boolean(settings, "state", enable);
+    if (g_settings_get_boolean(settings, "state") != 0) {
+      enable();
+    }
   }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/convolver.cpp 
new/pulseeffects-4.8.5/src/convolver.cpp
--- old/pulseeffects-4.8.4/src/convolver.cpp    2020-12-21 16:49:34.000000000 
+0100
+++ new/pulseeffects-4.8.5/src/convolver.cpp    2021-03-14 18:42:56.000000000 
+0100
@@ -62,11 +62,9 @@
     g_settings_bind_with_mapping(settings, "output-gain", output_gain, 
"volume", G_SETTINGS_BIND_DEFAULT,
                                  util::db20_gain_to_linear_double, 
util::linear_double_gain_to_db20, nullptr, nullptr);
 
-    // useless write just to force callback call
-
-    auto enable = g_settings_get_boolean(settings, "state");
-
-    g_settings_set_boolean(settings, "state", enable);
+    if (g_settings_get_boolean(settings, "state") != 0) {
+      enable();
+    }
   }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/crossfeed.cpp 
new/pulseeffects-4.8.5/src/crossfeed.cpp
--- old/pulseeffects-4.8.4/src/crossfeed.cpp    2020-12-21 16:49:34.000000000 
+0100
+++ new/pulseeffects-4.8.5/src/crossfeed.cpp    2021-03-14 18:42:56.000000000 
+0100
@@ -49,11 +49,9 @@
     g_settings_bind(settings, "post-messages", in_level, "post-messages", 
G_SETTINGS_BIND_DEFAULT);
     g_settings_bind(settings, "post-messages", out_level, "post-messages", 
G_SETTINGS_BIND_DEFAULT);
 
-    // useless write just to force callback call
-
-    auto enable = g_settings_get_boolean(settings, "state");
-
-    g_settings_set_boolean(settings, "state", enable);
+    if (g_settings_get_boolean(settings, "state") != 0) {
+      enable();
+    }
   }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/crystalizer.cpp 
new/pulseeffects-4.8.5/src/crystalizer.cpp
--- old/pulseeffects-4.8.4/src/crystalizer.cpp  2020-12-21 16:49:34.000000000 
+0100
+++ new/pulseeffects-4.8.5/src/crystalizer.cpp  2021-03-14 18:42:56.000000000 
+0100
@@ -107,11 +107,9 @@
     g_settings_bind_with_mapping(settings, "output-gain", output_gain, 
"volume", G_SETTINGS_BIND_DEFAULT,
                                  util::db20_gain_to_linear_double, 
util::linear_double_gain_to_db20, nullptr, nullptr);
 
-    // useless write just to force callback call
-
-    auto enable = g_settings_get_boolean(settings, "state");
-
-    g_settings_set_boolean(settings, "state", enable);
+    if (g_settings_get_boolean(settings, "state") != 0) {
+      enable();
+    }
   }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/deesser.cpp 
new/pulseeffects-4.8.5/src/deesser.cpp
--- old/pulseeffects-4.8.4/src/deesser.cpp      2020-12-21 16:49:34.000000000 
+0100
+++ new/pulseeffects-4.8.5/src/deesser.cpp      2021-03-14 18:42:56.000000000 
+0100
@@ -94,11 +94,9 @@
     g_settings_bind(settings, "post-messages", in_level, "post-messages", 
G_SETTINGS_BIND_DEFAULT);
     g_settings_bind(settings, "post-messages", out_level, "post-messages", 
G_SETTINGS_BIND_DEFAULT);
 
-    // useless write just to force callback call
-
-    auto enable = g_settings_get_boolean(settings, "state");
-
-    g_settings_set_boolean(settings, "state", enable);
+    if (g_settings_get_boolean(settings, "state") != 0) {
+      enable();
+    }
   }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/delay.cpp 
new/pulseeffects-4.8.5/src/delay.cpp
--- old/pulseeffects-4.8.4/src/delay.cpp        2020-12-21 16:49:34.000000000 
+0100
+++ new/pulseeffects-4.8.5/src/delay.cpp        2021-03-14 18:42:56.000000000 
+0100
@@ -68,11 +68,9 @@
     g_settings_bind_with_mapping(settings, "output-gain", output_gain, 
"volume", G_SETTINGS_BIND_DEFAULT,
                                  util::db20_gain_to_linear_double, 
util::linear_double_gain_to_db20, nullptr, nullptr);
 
-    // useless write just to force callback call
-
-    auto enable = g_settings_get_boolean(settings, "state");
-
-    g_settings_set_boolean(settings, "state", enable);
+    if (g_settings_get_boolean(settings, "state") != 0) {
+      enable();
+    }
   }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/effects_base_ui.cpp 
new/pulseeffects-4.8.5/src/effects_base_ui.cpp
--- old/pulseeffects-4.8.4/src/effects_base_ui.cpp      2020-12-21 
16:49:34.000000000 +0100
+++ new/pulseeffects-4.8.5/src/effects_base_ui.cpp      2021-03-14 
18:42:56.000000000 +0100
@@ -18,20 +18,13 @@
  */
 
 #include "effects_base_ui.hpp"
-#include <glibmm/i18n.h>
-#include "plugin_ui_base.hpp"
+
+std::locale EffectsBaseUi::global_locale = util::get_global_locale();
 
 EffectsBaseUi::EffectsBaseUi(const Glib::RefPtr<Gtk::Builder>& builder,
                              Glib::RefPtr<Gio::Settings> refSettings,
                              PulseManager* pulse_manager)
     : settings(std::move(refSettings)), pm(pulse_manager) {
-  // set locale (workaround for #849)
-
-  try {
-    global_locale = std::locale("");
-  } catch (const std::exception& e) {
-    global_locale = std::locale();
-  }
   // loading glade widgets
 
   builder->get_widget("stack", stack);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/equalizer.cpp 
new/pulseeffects-4.8.5/src/equalizer.cpp
--- old/pulseeffects-4.8.4/src/equalizer.cpp    2020-12-21 16:49:34.000000000 
+0100
+++ new/pulseeffects-4.8.5/src/equalizer.cpp    2021-03-14 18:42:56.000000000 
+0100
@@ -94,11 +94,9 @@
 
     g_settings_bind(settings, "mode", equalizer, "mode", 
G_SETTINGS_BIND_DEFAULT);
 
-    // useless write just to force on_state_changed callback call
-
-    auto enable = g_settings_get_boolean(settings, "state");
-
-    g_settings_set_boolean(settings, "state", enable);
+    if (g_settings_get_boolean(settings, "state") != 0) {
+      enable();
+    }
   }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/exciter.cpp 
new/pulseeffects-4.8.5/src/exciter.cpp
--- old/pulseeffects-4.8.4/src/exciter.cpp      2020-12-21 16:49:34.000000000 
+0100
+++ new/pulseeffects-4.8.5/src/exciter.cpp      2021-03-14 18:42:56.000000000 
+0100
@@ -78,11 +78,9 @@
     g_settings_bind(settings, "post-messages", in_level, "post-messages", 
G_SETTINGS_BIND_DEFAULT);
     g_settings_bind(settings, "post-messages", out_level, "post-messages", 
G_SETTINGS_BIND_DEFAULT);
 
-    // useless write just to force callback call
-
-    auto enable = g_settings_get_boolean(settings, "state");
-
-    g_settings_set_boolean(settings, "state", enable);
+    if (g_settings_get_boolean(settings, "state") != 0) {
+      enable();
+    }
   }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/filter.cpp 
new/pulseeffects-4.8.5/src/filter.cpp
--- old/pulseeffects-4.8.4/src/filter.cpp       2020-12-21 16:49:34.000000000 
+0100
+++ new/pulseeffects-4.8.5/src/filter.cpp       2021-03-14 18:42:56.000000000 
+0100
@@ -98,11 +98,9 @@
 
     g_signal_connect(settings, "changed::post-messages", 
G_CALLBACK(on_post_messages_changed), this);
 
-    // useless write just to force callback call
-
-    auto enable = g_settings_get_boolean(settings, "state");
-
-    g_settings_set_boolean(settings, "state", enable);
+    if (g_settings_get_boolean(settings, "state") != 0) {
+      enable();
+    }
   }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/gate.cpp 
new/pulseeffects-4.8.5/src/gate.cpp
--- old/pulseeffects-4.8.4/src/gate.cpp 2020-12-21 16:49:34.000000000 +0100
+++ new/pulseeffects-4.8.5/src/gate.cpp 2021-03-14 18:42:56.000000000 +0100
@@ -78,11 +78,9 @@
     g_settings_bind(settings, "post-messages", in_level, "post-messages", 
G_SETTINGS_BIND_DEFAULT);
     g_settings_bind(settings, "post-messages", out_level, "post-messages", 
G_SETTINGS_BIND_DEFAULT);
 
-    // useless write just to force callback call
-
-    auto enable = g_settings_get_boolean(settings, "state");
-
-    g_settings_set_boolean(settings, "state", enable);
+    if (g_settings_get_boolean(settings, "state") != 0) {
+      enable();
+    }
   }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/limiter.cpp 
new/pulseeffects-4.8.5/src/limiter.cpp
--- old/pulseeffects-4.8.4/src/limiter.cpp      2020-12-21 16:49:34.000000000 
+0100
+++ new/pulseeffects-4.8.5/src/limiter.cpp      2021-03-14 18:42:56.000000000 
+0100
@@ -114,11 +114,9 @@
 
     g_signal_connect(settings, "changed::post-messages", 
G_CALLBACK(on_post_messages_changed), this);
 
-    // useless write just to force callback call
-
-    auto enable = g_settings_get_boolean(settings, "state");
-
-    g_settings_set_boolean(settings, "state", enable);
+    if (g_settings_get_boolean(settings, "state") != 0) {
+      enable();
+    }
   }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/loudness.cpp 
new/pulseeffects-4.8.5/src/loudness.cpp
--- old/pulseeffects-4.8.4/src/loudness.cpp     2020-12-21 16:49:34.000000000 
+0100
+++ new/pulseeffects-4.8.5/src/loudness.cpp     2021-03-14 18:42:56.000000000 
+0100
@@ -51,11 +51,9 @@
     g_settings_bind(settings, "post-messages", in_level, "post-messages", 
G_SETTINGS_BIND_DEFAULT);
     g_settings_bind(settings, "post-messages", out_level, "post-messages", 
G_SETTINGS_BIND_DEFAULT);
 
-    // useless write just to force callback call
-
-    auto enable = g_settings_get_boolean(settings, "state");
-
-    g_settings_set_boolean(settings, "state", enable);
+    if (g_settings_get_boolean(settings, "state") != 0) {
+      enable();
+    }
   }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/maximizer.cpp 
new/pulseeffects-4.8.5/src/maximizer.cpp
--- old/pulseeffects-4.8.4/src/maximizer.cpp    2020-12-21 16:49:34.000000000 
+0100
+++ new/pulseeffects-4.8.5/src/maximizer.cpp    2021-03-14 18:42:56.000000000 
+0100
@@ -76,11 +76,9 @@
     g_settings_bind(settings, "post-messages", in_level, "post-messages", 
G_SETTINGS_BIND_DEFAULT);
     g_settings_bind(settings, "post-messages", out_level, "post-messages", 
G_SETTINGS_BIND_DEFAULT);
 
-    // useless write just to force callback call
-
-    auto enable = g_settings_get_boolean(settings, "state");
-
-    g_settings_set_boolean(settings, "state", enable);
+    if (g_settings_get_boolean(settings, "state") != 0) {
+      enable();
+    }
   }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/multiband_compressor.cpp 
new/pulseeffects-4.8.5/src/multiband_compressor.cpp
--- old/pulseeffects-4.8.4/src/multiband_compressor.cpp 2020-12-21 
16:49:34.000000000 +0100
+++ new/pulseeffects-4.8.5/src/multiband_compressor.cpp 2021-03-14 
18:42:56.000000000 +0100
@@ -219,11 +219,9 @@
 
     g_signal_connect(settings, "changed::post-messages", 
G_CALLBACK(on_post_messages_changed), this);
 
-    // useless write just to force callback call
-
-    auto enable = g_settings_get_boolean(settings, "state");
-
-    g_settings_set_boolean(settings, "state", enable);
+    if (g_settings_get_boolean(settings, "state") != 0) {
+      enable();
+    }
   }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/multiband_gate.cpp 
new/pulseeffects-4.8.5/src/multiband_gate.cpp
--- old/pulseeffects-4.8.4/src/multiband_gate.cpp       2020-12-21 
16:49:34.000000000 +0100
+++ new/pulseeffects-4.8.5/src/multiband_gate.cpp       2021-03-14 
18:42:56.000000000 +0100
@@ -216,11 +216,9 @@
 
     g_signal_connect(settings, "changed::post-messages", 
G_CALLBACK(on_post_messages_changed), this);
 
-    // useless write just to force callback call
-
-    auto enable = g_settings_get_boolean(settings, "state");
-
-    g_settings_set_boolean(settings, "state", enable);
+    if (g_settings_get_boolean(settings, "state") != 0) {
+      enable();
+    }
   }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/pitch.cpp 
new/pulseeffects-4.8.5/src/pitch.cpp
--- old/pulseeffects-4.8.4/src/pitch.cpp        2020-12-21 16:49:34.000000000 
+0100
+++ new/pulseeffects-4.8.5/src/pitch.cpp        2021-03-14 18:42:56.000000000 
+0100
@@ -58,11 +58,9 @@
     g_settings_bind_with_mapping(settings, "output-gain", output_gain, 
"volume", G_SETTINGS_BIND_DEFAULT,
                                  util::db20_gain_to_linear_double, 
util::linear_double_gain_to_db20, nullptr, nullptr);
 
-    // useless write just to force callback call
-
-    auto enable = g_settings_get_boolean(settings, "state");
-
-    g_settings_set_boolean(settings, "state", enable);
+    if (g_settings_get_boolean(settings, "state") != 0) {
+      enable();
+    }
   }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/plugin_ui_base.cpp 
new/pulseeffects-4.8.5/src/plugin_ui_base.cpp
--- old/pulseeffects-4.8.4/src/plugin_ui_base.cpp       2020-12-21 
16:49:34.000000000 +0100
+++ new/pulseeffects-4.8.5/src/plugin_ui_base.cpp       2021-03-14 
18:42:56.000000000 +0100
@@ -19,18 +19,13 @@
 
 #include "plugin_ui_base.hpp"
 
+std::locale PluginUiBase::global_locale = util::get_global_locale();
+std::locale PluginUiBase::c_locale = util::get_c_locale();
+
 PluginUiBase::PluginUiBase(const Glib::RefPtr<Gtk::Builder>& builder,
                            const std::string& schema,
                            const std::string& schema_path)
     : settings(Gio::Settings::create(schema, schema_path)) {
-  // set locale (workaround for #849)
-
-  try {
-    global_locale = std::locale("");
-  } catch (const std::exception& e) {
-    global_locale = std::locale();
-  }
-
   // get widgets
 
   builder->get_widget("enable", enable);
@@ -71,28 +66,6 @@
   settings->set_boolean("post-messages", false);
 }
 
-auto PluginUiBase::level_to_localized_string(const double& value, const int& 
places) -> std::string {
-  std::ostringstream msg;
-
-  msg.imbue(global_locale);
-  msg.precision(places);
-
-  msg << std::fixed << value;
-
-  return msg.str();
-}
-
-auto PluginUiBase::level_to_localized_string(const float& value, const int& 
places) -> std::string {
-  std::ostringstream msg;
-
-  msg.imbue(global_locale);
-  msg.precision(places);
-
-  msg << std::fixed << value;
-
-  return msg.str();
-}
-
 auto PluginUiBase::string_to_float(const std::string& value) -> float {
   std::stringstream ss;
   ss.imbue(c_locale);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/reverb.cpp 
new/pulseeffects-4.8.5/src/reverb.cpp
--- old/pulseeffects-4.8.4/src/reverb.cpp       2020-12-21 16:49:34.000000000 
+0100
+++ new/pulseeffects-4.8.5/src/reverb.cpp       2021-03-14 18:42:56.000000000 
+0100
@@ -98,11 +98,9 @@
 
     g_signal_connect(settings, "changed::post-messages", 
G_CALLBACK(on_post_messages_changed), this);
 
-    // useless write just to force callback call
-
-    auto enable = g_settings_get_boolean(settings, "state");
-
-    g_settings_set_boolean(settings, "state", enable);
+    if (g_settings_get_boolean(settings, "state") != 0) {
+      enable();
+    }
   }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/rnnoise/gstpernnoise.hpp 
new/pulseeffects-4.8.5/src/rnnoise/gstpernnoise.hpp
--- old/pulseeffects-4.8.4/src/rnnoise/gstpernnoise.hpp 2020-12-21 
16:49:34.000000000 +0100
+++ new/pulseeffects-4.8.5/src/rnnoise/gstpernnoise.hpp 2021-03-14 
18:42:56.000000000 +0100
@@ -23,10 +23,7 @@
 #include <gst/audio/gstaudiofilter.h>
 #include <mutex>
 #include <vector>
-
-extern "C" {
-#include "rnnoise.h"
-}
+#include <rnnoise.h>
 
 G_BEGIN_DECLS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/rnnoise.cpp 
new/pulseeffects-4.8.5/src/rnnoise.cpp
--- old/pulseeffects-4.8.4/src/rnnoise.cpp      2020-12-21 16:49:34.000000000 
+0100
+++ new/pulseeffects-4.8.5/src/rnnoise.cpp      2021-03-14 18:42:56.000000000 
+0100
@@ -66,11 +66,9 @@
     g_settings_bind_with_mapping(settings, "output-gain", output_gain, 
"volume", G_SETTINGS_BIND_DEFAULT,
                                  util::db20_gain_to_linear_double, 
util::linear_double_gain_to_db20, nullptr, nullptr);
 
-    // useless write just to force callback call
-
-    auto enable = g_settings_get_boolean(settings, "state");
-
-    g_settings_set_boolean(settings, "state", enable);
+    if (g_settings_get_boolean(settings, "state") != 0) {
+      enable();
+    }
   }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/spectrum_ui.cpp 
new/pulseeffects-4.8.5/src/spectrum_ui.cpp
--- old/pulseeffects-4.8.4/src/spectrum_ui.cpp  2020-12-21 16:49:34.000000000 
+0100
+++ new/pulseeffects-4.8.5/src/spectrum_ui.cpp  2021-03-14 18:42:56.000000000 
+0100
@@ -18,18 +18,10 @@
  */
 
 #include "spectrum_ui.hpp"
-#include "util.hpp"
 
 SpectrumUi::SpectrumUi(BaseObjectType* cobject, const 
Glib::RefPtr<Gtk::Builder>& builder)
-    : Gtk::Grid(cobject), 
settings(Gio::Settings::create("com.github.wwmm.pulseeffects.spectrum")) {
-  // set locale (workaround for #849)
-
-  try {
-    global_locale = std::locale("");
-  } catch (const std::exception& e) {
-    global_locale = std::locale();
-  }
-
+    : Gtk::Grid(cobject), 
settings(Gio::Settings::create("com.github.wwmm.pulseeffects.spectrum")),
+      global_locale(util::get_global_locale()) {
   // loading glade widgets
 
   builder->get_widget("spectrum", spectrum);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/stereo_tools.cpp 
new/pulseeffects-4.8.5/src/stereo_tools.cpp
--- old/pulseeffects-4.8.4/src/stereo_tools.cpp 2020-12-21 16:49:34.000000000 
+0100
+++ new/pulseeffects-4.8.5/src/stereo_tools.cpp 2021-03-14 18:42:56.000000000 
+0100
@@ -98,11 +98,9 @@
 
     g_signal_connect(settings, "changed::post-messages", 
G_CALLBACK(on_post_messages_changed), this);
 
-    // useless write just to force callback call
-
-    auto enable = g_settings_get_boolean(settings, "state");
-
-    g_settings_set_boolean(settings, "state", enable);
+    if (g_settings_get_boolean(settings, "state") != 0) {
+      enable();
+    }
   }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/util.cpp 
new/pulseeffects-4.8.5/src/util.cpp
--- old/pulseeffects-4.8.4/src/util.cpp 2020-12-21 16:49:34.000000000 +0100
+++ new/pulseeffects-4.8.5/src/util.cpp 2021-03-14 18:42:56.000000000 +0100
@@ -18,7 +18,6 @@
  */
 
 #include "util.hpp"
-#include <cmath>
 
 namespace util {
 
@@ -46,6 +45,20 @@
   std::cout << "thread id: " << std::this_thread::get_id() << std::endl;
 }
 
+auto get_global_locale() -> std::locale {
+  // set locale (workaround for #849)
+
+  try {
+    return std::locale("");
+  } catch (const std::exception& e) {
+    return std::locale();
+  }
+}
+
+auto get_c_locale() -> std::locale {
+  return std::locale();
+}
+
 auto logspace(const float& start, const float& stop, const uint& npoints) -> 
std::vector<float> {
   std::vector<float> output;
 
@@ -86,30 +99,6 @@
   return output;
 }
 
-auto linear_to_db(const float& amp) -> float {
-  if (amp >= minimum_linear_level) {
-    return 20.0F * log10f(amp);
-  }
-
-  return minimum_db_level;
-}
-
-auto linear_to_db(const double& amp) -> double {
-  if (amp >= minimum_linear_d_level) {
-    return 20.0 * log10f(amp);
-  }
-
-  return minimum_db_d_level;
-}
-
-auto db_to_linear(const float& db) -> float {
-  return expf((db / 20.0F) * logf(10.0F));
-}
-
-auto db_to_linear(const double& db) -> double {
-  return expf((db / 20.0) * logf(10.0));
-}
-
 auto db20_gain_to_linear(GValue* value, GVariant* variant, gpointer user_data) 
-> gboolean {
   double v_db = g_variant_get_double(variant);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pulseeffects-4.8.4/src/webrtc.cpp 
new/pulseeffects-4.8.5/src/webrtc.cpp
--- old/pulseeffects-4.8.4/src/webrtc.cpp       2020-12-21 16:49:34.000000000 
+0100
+++ new/pulseeffects-4.8.5/src/webrtc.cpp       2021-03-14 18:42:56.000000000 
+0100
@@ -34,11 +34,9 @@
 
     bind_to_gsettings();
 
-    // useless write just to force callback call
-
-    auto enable = g_settings_get_boolean(settings, "state");
-
-    g_settings_set_boolean(settings, "state", enable);
+    if (g_settings_get_boolean(settings, "state") != 0) {
+      enable();
+    }
   }
 }
 

Reply via email to