summaryrefslogtreecommitdiff
path: root/core/profile.py
diff options
context:
space:
mode:
Diffstat (limited to 'core/profile.py')
-rw-r--r--core/profile.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/core/profile.py b/core/profile.py
index 8c73b4b..1fa667a 100644
--- a/core/profile.py
+++ b/core/profile.py
@@ -306,6 +306,12 @@ class ProfileManager:
if engine is not None:
engine.remove_device(dev.info.device_id)
+ # Clear signal pipelines and derived channels — profile defines the
+ # complete set; otherwise the previous profile's leftovers stick around.
+ processor._pipelines.clear()
+ for dc in list(processor.get_derived()):
+ processor.remove_derived(dc.channel_id)
+
for dev_cfg in profile.devices:
dev_type = dev_cfg.get("device_type")
dev_id = dev_cfg.get("device_id")