mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-12-21 08:56:56 -05:00
node: set master flag
Set the master flag when a node is selected as master. Recalc graph when a node is destroyed
This commit is contained in:
parent
092a0c660d
commit
affc641c71
1 changed files with 8 additions and 0 deletions
|
|
@ -561,6 +561,8 @@ int pw_node_set_driver(struct pw_node *node, struct pw_node *driver)
|
||||||
if (old == driver)
|
if (old == driver)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
node->master = node->driver && driver == node;
|
||||||
|
|
||||||
node->driver_node = driver;
|
node->driver_node = driver;
|
||||||
pw_node_emit_driver_changed(node, old, driver);
|
pw_node_emit_driver_changed(node, old, driver);
|
||||||
|
|
||||||
|
|
@ -834,6 +836,7 @@ struct pw_node *pw_node_new(struct pw_core *core,
|
||||||
|
|
||||||
this->driver_node = this;
|
this->driver_node = this;
|
||||||
spa_list_append(&this->driver_list, &this->driver_link);
|
spa_list_append(&this->driver_list, &this->driver_link);
|
||||||
|
this->master = true;
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
|
|
||||||
|
|
@ -1035,6 +1038,9 @@ static int node_ready(void *data, int status)
|
||||||
}
|
}
|
||||||
node->rt.activation->running = true;
|
node->rt.activation->running = true;
|
||||||
}
|
}
|
||||||
|
if (node->driver && !node->master)
|
||||||
|
return 0;
|
||||||
|
|
||||||
return resume_node(node, status);
|
return resume_node(node, status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1161,6 +1167,8 @@ void pw_node_destroy(struct pw_node *node)
|
||||||
pw_global_destroy(node->global);
|
pw_global_destroy(node->global);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pw_core_recalc_graph(node->core);
|
||||||
|
|
||||||
pw_log_debug("node %p: free", node);
|
pw_log_debug("node %p: free", node);
|
||||||
pw_node_emit_free(node);
|
pw_node_emit_free(node);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue