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.
This commit is contained in:
Pauli Virtanen 2026-01-26 00:43:04 +02:00
parent 024f88322c
commit d81b170bbf

View file

@ -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)