module-node-factory: remove destroyed node from node list

This commit is contained in:
David Svensson Fors 2018-03-01 14:38:59 +01:00 committed by Wim Taymans
parent 135a0a18d8
commit 6365ea18d9

View file

@ -45,6 +45,18 @@ struct factory_data {
struct node_data { struct node_data {
struct spa_list link; struct spa_list link;
struct pw_node *node; struct pw_node *node;
struct spa_hook node_listener;
};
static void node_destroy(void *data)
{
struct node_data *nd = data;
spa_list_remove(&nd->link);
}
static const struct pw_node_events node_events = {
PW_VERSION_NODE_EVENTS,
.destroy = node_destroy,
}; };
static void *create_object(void *_data, static void *create_object(void *_data,
@ -88,6 +100,8 @@ static void *create_object(void *_data,
nd->node = node; nd->node = node;
spa_list_append(&data->node_list, &nd->link); spa_list_append(&data->node_list, &nd->link);
pw_node_add_listener(node, &nd->node_listener, &node_events, nd);
if (resource) if (resource)
pw_global_bind(pw_node_get_global(node), pw_global_bind(pw_node_get_global(node),
pw_resource_get_client(resource), pw_resource_get_client(resource),