[pulseaudio-discuss] [PATCH] bluetooth-policy: retain backwards compatibility

Tanu Kaskinen tanuk at iki.fi
Wed Mar 15 18:06:13 UTC 2017


The auto_switch argument was added in PulseAudio 10.0. In that release
the argument type was boolean. The type was changed to integer in commit
3397127f00. This patch adds backwards compatibility so that old
configuration files won't break when upgrading PulseAudio to 11.0.
---
 src/modules/bluetooth/module-bluetooth-policy.c | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/src/modules/bluetooth/module-bluetooth-policy.c b/src/modules/bluetooth/module-bluetooth-policy.c
index 8d9cd0f3a..316b9a826 100644
--- a/src/modules/bluetooth/module-bluetooth-policy.c
+++ b/src/modules/bluetooth/module-bluetooth-policy.c
@@ -423,9 +423,22 @@ int pa__init(pa_module *m) {
     m->userdata = u = pa_xnew0(struct userdata, 1);
 
     u->auto_switch = 1;
-    if (pa_modargs_get_value_u32(ma, "auto_switch", &u->auto_switch) < 0) {
-        pa_log("Failed to parse auto_switch argument.");
-        goto fail;
+
+    if (pa_modargs_get_value(ma, "auto_switch", NULL)) {
+        bool auto_switch_bool;
+
+        /* auto_switch originally took a boolean value, let's keep
+         * compatibility with configuration files that still pass a boolean. */
+        if (pa_modargs_get_value_boolean(ma, "auto_switch", &auto_switch_bool) >= 0) {
+            if (auto_switch_bool)
+                u->auto_switch = 1;
+            else
+                u->auto_switch = 0;
+
+        } else if (pa_modargs_get_value_u32(ma, "auto_switch", &u->auto_switch) < 0) {
+            pa_log("Failed to parse auto_switch argument.");
+            goto fail;
+        }
     }
 
     u->enable_a2dp_source = true;
-- 
2.11.0



More information about the pulseaudio-discuss mailing list