summaryrefslogtreecommitdiff
path: root/media-video/wireplumber/files/wireplumber-0.4.9-scripts-policy-device-profile-clear-tables-when-devi.patch
blob: 4dc8e276fbfa7a212238eb2766df0ca159c0d2fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
https://gitlab.freedesktop.org/pipewire/wireplumber/-/commit/da5d25acbea5ae03336bd2b4ef2b0687b380978e

From da5d25acbea5ae03336bd2b4ef2b0687b380978e Mon Sep 17 00:00:00 2001
From: Pauli Virtanen <pav@iki.fi>
Date: Mon, 28 Mar 2022 20:16:52 +0300
Subject: [PATCH] scripts: policy-device-profile: clear tables when devices
 removed

When device ids are invalidated, clear all local tables about them,
because the id may be reused by different object, or the same object
reappearing.
---
 src/scripts/policy-device-profile.lua | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/scripts/policy-device-profile.lua b/src/scripts/policy-device-profile.lua
index d0aa2696..9daeafaa 100644
--- a/src/scripts/policy-device-profile.lua
+++ b/src/scripts/policy-device-profile.lua
@@ -229,4 +229,10 @@ self.om:connect("object-added", function (_, device)
   handleProfiles (device, true)
 end)
 
+self.om:connect("object-removed", function (_, device)
+  local dev_id = device["bound-id"]
+  self.active_profiles[dev_id] = nil
+  self.best_profiles[dev_id] = nil
+end)
+
 self.om:activate()
-- 
GitLab