1
Fork 0

context: scan peers in both directions

Don't stop scanning peers after trying one direction. Try the other
direction too, just like with link groups.

See a821027fb8.
This commit is contained in:
Jonas Holmberg 2023-09-05 16:48:57 +02:00 committed by Wim Taymans
parent 9b29bcd4e8
commit be943ca9db
1 changed files with 3 additions and 3 deletions

View File

@ -807,7 +807,7 @@ static inline int run_nodes(struct pw_context *context, struct pw_impl_node *nod
spa_list_for_each(l, &p->links, input_link) {
t = l->output->node;
if (!t->active || !l->prepared || (!t->driving && t->runnable))
if (!t->active || !l->prepared || (!t->driving && SPA_FLAG_IS_SET(t->checked, 1u<<direction)))
continue;
pw_log_debug(" peer %p: '%s'", t, t->name);
@ -820,7 +820,7 @@ static inline int run_nodes(struct pw_context *context, struct pw_impl_node *nod
spa_list_for_each(l, &p->links, output_link) {
t = l->input->node;
if (!t->active || !l->prepared || (!t->driving && t->runnable))
if (!t->active || !l->prepared || (!t->driving && SPA_FLAG_IS_SET(t->checked, 1u<<direction)))
continue;
pw_log_debug(" peer %p: '%s'", t, t->name);
@ -837,7 +837,7 @@ static inline int run_nodes(struct pw_context *context, struct pw_impl_node *nod
if (node->link_group != NULL) {
spa_list_for_each(t, nodes, sort_link) {
if (t->exported || !t->active ||
SPA_FLAG_IS_SET(t->checked, 1u<<direction))
SPA_FLAG_IS_SET(t->checked, 1u<<direction))
continue;
if (!spa_streq(t->link_group, node->link_group))
continue;