mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-31 22:25:38 -04:00
impl-node: only copy relevant fields from target
We can't copy the link or active state.
This commit is contained in:
parent
894eeae03c
commit
2994c48702
3 changed files with 12 additions and 2 deletions
|
|
@ -70,7 +70,7 @@ static struct pw_node_peer *pw_node_peer_ref(struct pw_impl_node *onode, struct
|
|||
peer->ref = 1;
|
||||
peer->output = onode;
|
||||
peer->active_count = 0;
|
||||
peer->target = inode->rt.target;
|
||||
copy_target(&peer->target, &inode->rt.target);
|
||||
|
||||
spa_list_append(&onode->peer_list, &peer->link);
|
||||
pw_log_debug("new peer %p from %p to %p", peer, onode, inode);
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ static void add_node(struct pw_impl_node *this, struct pw_impl_node *driver)
|
|||
}
|
||||
|
||||
/* trigger the driver when we complete */
|
||||
this->rt.driver_target = driver->rt.target;
|
||||
copy_target(&this->rt.driver_target, &driver->rt.target);
|
||||
spa_list_append(&this->rt.target_list, &this->rt.driver_target.link);
|
||||
|
||||
/* now increment the required states of all this node targets, including
|
||||
|
|
|
|||
|
|
@ -600,6 +600,16 @@ struct pw_node_target {
|
|||
unsigned int active:1;
|
||||
};
|
||||
|
||||
static inline void copy_target(struct pw_node_target *dst, const struct pw_node_target *src)
|
||||
{
|
||||
dst->id = src->id;
|
||||
memcpy(dst->name, src->name, sizeof(dst->name));
|
||||
dst->node = src->node;
|
||||
dst->activation = src->activation;
|
||||
dst->system = src->system;
|
||||
dst->fd = src->fd;
|
||||
}
|
||||
|
||||
struct pw_node_activation {
|
||||
#define PW_NODE_ACTIVATION_NOT_TRIGGERED 0
|
||||
#define PW_NODE_ACTIVATION_TRIGGERED 1
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue