New wireplumber config
This commit is contained in:
49
.config/wireplumber/scripts/monitors/v4l2/name-device.lua
Normal file
49
.config/wireplumber/scripts/monitors/v4l2/name-device.lua
Normal file
@@ -0,0 +1,49 @@
|
||||
-- WirePlumber
|
||||
--
|
||||
-- Copyright © 2023 Collabora Ltd.
|
||||
-- @author Ashok Sidipotu <ashok.sidipotu@collabora.com>
|
||||
--
|
||||
-- SPDX-License-Identifier: MIT
|
||||
|
||||
mutils = require ("monitor-utils")
|
||||
|
||||
log = Log.open_topic ("s-monitors-v4l2")
|
||||
|
||||
SimpleEventHook {
|
||||
name = "monitor/v4l2/name-device",
|
||||
interests = {
|
||||
EventInterest {
|
||||
Constraint { "event.type", "=", "create-v4l2-device" },
|
||||
},
|
||||
},
|
||||
execute = function(event)
|
||||
local properties = event:get_data ("device-properties")
|
||||
local parent = event:get_subject ()
|
||||
local id = event:get_data ("device-sub-id")
|
||||
|
||||
local name = "v4l2_device." ..
|
||||
(properties["device.name"] or
|
||||
properties["device.bus-id"] or
|
||||
properties["device.bus-path"] or
|
||||
tostring (id)):gsub ("([^%w_%-%.])", "_")
|
||||
|
||||
properties["device.name"] = name
|
||||
|
||||
-- deduplicate devices with the same name
|
||||
for counter = 2, 99, 1 do
|
||||
if mutils.find_duplicate (parent, id, "device.name", properties["node.name"]) then
|
||||
properties["device.name"] = name .. "." .. counter
|
||||
else
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
-- ensure the device has a description
|
||||
properties["device.description"] =
|
||||
properties["device.description"]
|
||||
or properties["device.product.name"]
|
||||
or "Unknown device"
|
||||
|
||||
event:set_data ("device-properties", properties)
|
||||
end
|
||||
}:register ()
|
||||
Reference in New Issue
Block a user