mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-04 13:30:12 -05:00
impl-node: improve property parsing
Use pw_properties_get_uint32() and friends to parse properties and have a fallback when the property is not there.
This commit is contained in:
parent
18148e7add
commit
9ed57c1dba
1 changed files with 24 additions and 29 deletions
|
|
@ -1113,16 +1113,14 @@ static void check_properties(struct pw_impl_node *node)
|
||||||
pw_context_conf_section_match_rules(context, "node.rules",
|
pw_context_conf_section_match_rules(context, "node.rules",
|
||||||
&node->properties->dict, execute_match, &match);
|
&node->properties->dict, execute_match, &match);
|
||||||
|
|
||||||
if ((str = pw_properties_get(node->properties, PW_KEY_PRIORITY_DRIVER))) {
|
value = pw_properties_get_uint32(node->properties, PW_KEY_PRIORITY_DRIVER, 0);
|
||||||
value = pw_properties_parse_int(str);
|
if (value != node->priority_driver) {
|
||||||
if (value != node->priority_driver) {
|
pw_log_debug("%p: priority driver %d -> %d", node, node->priority_driver, value);
|
||||||
pw_log_debug("%p: priority driver %d -> %d", node, node->priority_driver, value);
|
node->priority_driver = value;
|
||||||
node->priority_driver = value;
|
if (node->registered && node->driver) {
|
||||||
if (node->registered && node->driver) {
|
remove_driver(context, node);
|
||||||
remove_driver(context, node);
|
insert_driver(context, node);
|
||||||
insert_driver(context, node);
|
recalc_reason = "driver priority changed";
|
||||||
recalc_reason = "driver priority changed";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1268,13 +1266,11 @@ static void check_properties(struct pw_impl_node *node)
|
||||||
}
|
}
|
||||||
node->lock_quantum = pw_properties_get_bool(node->properties, PW_KEY_NODE_LOCK_QUANTUM, false);
|
node->lock_quantum = pw_properties_get_bool(node->properties, PW_KEY_NODE_LOCK_QUANTUM, false);
|
||||||
|
|
||||||
if ((str = pw_properties_get(node->properties, PW_KEY_NODE_FORCE_QUANTUM))) {
|
value = pw_properties_get_uint32(node->properties, PW_KEY_NODE_FORCE_QUANTUM, 0);
|
||||||
if (spa_atou32(str, &value, 0) &&
|
if (node->force_quantum != value) {
|
||||||
node->force_quantum != value) {
|
node->force_quantum = value;
|
||||||
node->force_quantum = value;
|
node->stamp = ++context->stamp;
|
||||||
node->stamp = ++context->stamp;
|
recalc_reason = "force quantum changed";
|
||||||
recalc_reason = "force quantum changed";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((str = pw_properties_get(node->properties, PW_KEY_NODE_RATE))) {
|
if ((str = pw_properties_get(node->properties, PW_KEY_NODE_RATE))) {
|
||||||
|
|
@ -1290,18 +1286,17 @@ static void check_properties(struct pw_impl_node *node)
|
||||||
}
|
}
|
||||||
node->lock_rate = pw_properties_get_bool(node->properties, PW_KEY_NODE_LOCK_RATE, false);
|
node->lock_rate = pw_properties_get_bool(node->properties, PW_KEY_NODE_LOCK_RATE, false);
|
||||||
|
|
||||||
if ((str = pw_properties_get(node->properties, PW_KEY_NODE_FORCE_RATE))) {
|
value = pw_properties_get_uint32(node->properties, PW_KEY_NODE_FORCE_RATE, SPA_ID_INVALID);
|
||||||
if (spa_atou32(str, &value, 0)) {
|
if (value == 0)
|
||||||
if (value == 0)
|
value = node->rate.denom;
|
||||||
value = node->rate.denom;
|
if (value == SPA_ID_INVALID)
|
||||||
if (node->force_rate != value) {
|
value = 0;
|
||||||
pw_log_info("(%s-%u) force-rate:%u -> %u", node->name,
|
if (node->force_rate != value) {
|
||||||
node->info.id, node->force_rate, value);
|
pw_log_info("(%s-%u) force-rate:%u -> %u", node->name,
|
||||||
node->force_rate = value;
|
node->info.id, node->force_rate, value);
|
||||||
node->stamp = ++context->stamp;
|
node->force_rate = value;
|
||||||
recalc_reason = "force rate changed";
|
node->stamp = ++context->stamp;
|
||||||
}
|
recalc_reason = "force rate changed";
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pw_log_debug("%p: driver:%d recalc:%s active:%d", node, node->driver,
|
pw_log_debug("%p: driver:%d recalc:%s active:%d", node, node->driver,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue