mirror of
https://gitlab.freedesktop.org/pipewire/wireplumber.git
synced 2026-05-07 09:58:04 +02:00
default-nodes: Never consider Audio/Sink nodes as best for default audio.source node type
Audio/Sink nodes should only be used as default audio source node type if the user has explicitly selected it. If the user has not explicitly selected it, we should always ignore it and instead select the highest priority Audio/Source node. Fixes #886
This commit is contained in:
parent
a5a079ec1d
commit
80842cbb96
1 changed files with 10 additions and 0 deletions
|
|
@ -18,6 +18,8 @@ SimpleEventHook {
|
|||
},
|
||||
},
|
||||
execute = function (event)
|
||||
local props = event:get_properties ()
|
||||
local def_node_type = props ["default-node.type"]
|
||||
local available_nodes = event:get_data ("available-nodes")
|
||||
local selected_prio = event:get_data ("selected-node-priority") or 0
|
||||
local selected_route_prio = event:get_data ("selected-route-priority") or 0
|
||||
|
|
@ -37,6 +39,12 @@ SimpleEventHook {
|
|||
-- Highest priority node wins
|
||||
local priority = nutils.get_session_priority (node_props)
|
||||
local route_priority = nutils.get_route_priority (node_props)
|
||||
local media_class = node_props ["media.class"]
|
||||
|
||||
-- Never consider sink nodes as best if audio.source is the def node type
|
||||
if media_class == "Audio/Sink" and def_node_type == "audio.source" then
|
||||
goto skip_node
|
||||
end
|
||||
|
||||
if selected_node == nil or
|
||||
priority > selected_prio or
|
||||
|
|
@ -46,6 +54,8 @@ SimpleEventHook {
|
|||
selected_route_prio = route_priority
|
||||
selected_node = node_props ["node.name"]
|
||||
end
|
||||
|
||||
::skip_node::
|
||||
end
|
||||
|
||||
event:set_data ("selected-node-priority", selected_prio)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue