mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-29 05:40:27 -04:00
jack: handle node.always-process = false jack nodes
Node that have the node.always-process = false property do not conform to the jack API because they will be suspended even when they don't inactivate themselves. Don't hide the ports for those clients when inactive. Fixes #3416
This commit is contained in:
parent
31f91ce9f4
commit
cbf97d4b00
1 changed files with 10 additions and 3 deletions
|
|
@ -3075,11 +3075,18 @@ static void node_info(void *data, const struct pw_node_info *info)
|
|||
{
|
||||
struct object *n = data;
|
||||
struct client *c = n->client;
|
||||
const char *str;
|
||||
|
||||
pw_log_info("DSP node %d state change %s", info->id,
|
||||
pw_node_state_as_string(info->state));
|
||||
if (info->change_mask & PW_NODE_CHANGE_MASK_PROPS) {
|
||||
str = spa_dict_lookup(info->props, PW_KEY_NODE_ALWAYS_PROCESS);
|
||||
n->node.is_jack = str ? spa_atob(str) : false;
|
||||
}
|
||||
|
||||
n->node.is_running = (info->state == PW_NODE_STATE_RUNNING);
|
||||
n->node.is_running = !n->node.is_jack || (info->state == PW_NODE_STATE_RUNNING);
|
||||
|
||||
pw_log_debug("DSP node %d %08"PRIx64" jack:%u state change %s running:%d", info->id,
|
||||
info->change_mask, n->node.is_jack,
|
||||
pw_node_state_as_string(info->state), n->node.is_running);
|
||||
|
||||
if (info->change_mask & PW_NODE_CHANGE_MASK_STATE) {
|
||||
struct object *p;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue