diff --git a/src/scripts/monitors/monitor-alsa.lua b/src/scripts/monitors/monitor-alsa.lua index 9153b6f9a845377c5580feaa84dae0cb3d00cdcf..4ab7f55832b17eb7c48c1837ca5190916590e536 100644 --- a/src/scripts/monitors/monitor-alsa.lua +++ b/src/scripts/monitors/monitor-alsa.lua @@ -114,6 +114,9 @@ function createNode(parent, id, type, factory, properties) .. "." .. profile + -- sanitize name + name = name:gsub("([^%w_%-%.])", "_") + properties["node.name"] = name -- deduplicate nodes with the same name @@ -127,10 +130,12 @@ function createNode(parent, id, type, factory, properties) end -- and a nick - properties["node.nick"] = properties["node.nick"] + local nick = properties["node.nick"] or dev_props["device.nick"] or dev_props["api.alsa.card.name"] or dev_props["alsa.card_name"] + -- also sanitize nick, but allow all characters except : + properties["node.nick"] = nick:gsub("(:)", "_") -- ensure the node has a description if not properties["node.description"] then diff --git a/src/scripts/monitors/monitor-bluez5.lua b/src/scripts/monitors/monitor-bluez5.lua index 2a57899cbc390d78ddab07a98a3a892cf02380c1..0f08ccdd7950d34afda507d81cb6240d4e2ceb34 100644 --- a/src/scripts/monitors/monitor-bluez5.lua +++ b/src/scripts/monitors/monitor-bluez5.lua @@ -56,11 +56,13 @@ function createNode(parent, id, type, factory, properties) or "bluetooth-device" -- set the node name - properties["node.name"] = + local name = ((factory:find("sink") and "bluez_output") or (factory:find("source") and "bluez_input" or factory)) .. "." .. (properties["api.bluez5.address"] or dev_props["device.name"]) .. "." .. (properties["api.bluez5.profile"] or "unknown") + -- sanitize name + properties["node.name"] = name:gsub("([^%w_%-%.])", "_") -- set priority if not properties["priority.driver"] then diff --git a/src/scripts/monitors/monitor-v4l2.lua b/src/scripts/monitors/monitor-v4l2.lua index 8540167192929ccde27c4316ad3bf2c981b28cf7..cfc4d230dfc1a90a0ee1ba70e1336cff408cbcbb 100644 --- a/src/scripts/monitors/monitor-v4l2.lua +++ b/src/scripts/monitors/monitor-v4l2.lua @@ -68,6 +68,9 @@ function createNode(parent, id, type, factory, properties) dev_props["device.alias"] or "v4l2-device") + -- sanitize name + name = name:gsub("([^%w_%-%.])", "_") + properties["node.name"] = name -- deduplicate nodes with the same name