From d81b170bbf46331f18c3cceb0007d2b94f54d471 Mon Sep 17 00:00:00 2001 From: Pauli Virtanen Date: Mon, 26 Jan 2026 00:43:04 +0200 Subject: [PATCH] monitors/bluez: fix BAP device set channel prop As properties are no longer Lua tables, we'll need to make a table copy for the Json constructor. Fixes assigning Json.Array to a non-table, and ending up with "audio.position":"0x7b771267d690" instead of ["FL","FR"] in json output, which caused BAP device set node to always have mono channels. --- src/scripts/monitors/bluez.lua | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/scripts/monitors/bluez.lua b/src/scripts/monitors/bluez.lua index e5873139..a369f1e0 100644 --- a/src/scripts/monitors/bluez.lua +++ b/src/scripts/monitors/bluez.lua @@ -217,13 +217,15 @@ function createSetNode(parent, id, type, factory, properties) ) end - properties["node.virtual"] = false - properties["device.api"] = "bluez5" - properties["api.bluez5.set.members"] = nil - properties["api.bluez5.set.channels"] = nil - properties["api.bluez5.set.leader"] = true - properties["audio.position"] = Json.Array (channels) - args["combine.props"] = Json.Object (properties) + local combine_props = properties:parse () + combine_props["node.virtual"] = false + combine_props["device.api"] = "bluez5" + combine_props["api.bluez5.set.members"] = nil + combine_props["api.bluez5.set.channels"] = nil + combine_props["api.bluez5.set.leader"] = true + combine_props["audio.position"] = Json.Array (channels) + + args["combine.props"] = Json.Object (combine_props) args["stream.props"] = Json.Object {} args["stream.rules"] = Json.Array (rules)