mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-01 22:58:50 -04:00
impl-node: handle priority.driver changes
When the driver priority changes, remove and add the node into the driver list to keep the list sorted. Also trigger a graph recalc.
This commit is contained in:
parent
a7410fe1bf
commit
92ac9a355f
1 changed files with 11 additions and 4 deletions
|
|
@ -923,8 +923,16 @@ static void check_properties(struct pw_impl_node *node)
|
||||||
bool driver, trigger;
|
bool driver, trigger;
|
||||||
|
|
||||||
if ((str = pw_properties_get(node->properties, PW_KEY_PRIORITY_DRIVER))) {
|
if ((str = pw_properties_get(node->properties, PW_KEY_PRIORITY_DRIVER))) {
|
||||||
node->priority_driver = pw_properties_parse_int(str);
|
value = pw_properties_parse_int(str);
|
||||||
pw_log_debug("%p: priority driver %d", node, node->priority_driver);
|
if (value != node->priority_driver) {
|
||||||
|
pw_log_debug("%p: priority driver %d -> %d", node, node->priority_driver, value);
|
||||||
|
node->priority_driver = value;
|
||||||
|
if (node->registered && node->driver) {
|
||||||
|
remove_driver(context, node);
|
||||||
|
insert_driver(context, node);
|
||||||
|
recalc_reason = "driver priority changed";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((str = pw_properties_get(node->properties, PW_KEY_NODE_NAME)) &&
|
if ((str = pw_properties_get(node->properties, PW_KEY_NODE_NAME)) &&
|
||||||
|
|
@ -947,9 +955,8 @@ static void check_properties(struct pw_impl_node *node)
|
||||||
if (node->registered) {
|
if (node->registered) {
|
||||||
if (driver)
|
if (driver)
|
||||||
insert_driver(context, node);
|
insert_driver(context, node);
|
||||||
else {
|
else
|
||||||
remove_driver(context, node);
|
remove_driver(context, node);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (driver && node->driver_node == node)
|
if (driver && node->driver_node == node)
|
||||||
node->driving = true;
|
node->driving = true;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue