mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	resource: pass the resource id in the error
This commit is contained in:
		
							parent
							
								
									4401e479c6
								
							
						
					
					
						commit
						f46a83dcb7
					
				
					 15 changed files with 46 additions and 54 deletions
				
			
		| 
						 | 
					@ -168,18 +168,18 @@ static void *create_object(void *_data,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      no_resource:
 | 
					      no_resource:
 | 
				
			||||||
	pw_log_error("audio-dsp needs a resource");
 | 
						pw_log_error("audio-dsp needs a resource");
 | 
				
			||||||
	pw_resource_error(resource, -EINVAL, "no resource");
 | 
						pw_resource_error(resource, new_id, -EINVAL, "no resource");
 | 
				
			||||||
	goto done;
 | 
						goto done;
 | 
				
			||||||
      no_props:
 | 
					      no_props:
 | 
				
			||||||
	pw_log_error("audio-dsp needs a property");
 | 
						pw_log_error("audio-dsp needs a property");
 | 
				
			||||||
	pw_resource_error(resource, -EINVAL, "no property");
 | 
						pw_resource_error(resource, new_id, -EINVAL, "no property");
 | 
				
			||||||
	goto done;
 | 
						goto done;
 | 
				
			||||||
      no_mem:
 | 
					      no_mem:
 | 
				
			||||||
	pw_log_error("can't create node");
 | 
						pw_log_error("can't create node");
 | 
				
			||||||
	pw_resource_error(resource, -ENOMEM, "no memory");
 | 
						pw_resource_error(resource, new_id, -ENOMEM, "no memory");
 | 
				
			||||||
	goto done;
 | 
						goto done;
 | 
				
			||||||
      no_bind:
 | 
					      no_bind:
 | 
				
			||||||
	pw_resource_error(resource, res, "can't bind dsp node");
 | 
						pw_resource_error(resource, new_id, res, "can't bind dsp node");
 | 
				
			||||||
	goto done;
 | 
						goto done;
 | 
				
			||||||
      done:
 | 
					      done:
 | 
				
			||||||
	if (properties)
 | 
						if (properties)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -83,11 +83,11 @@ static void *create_object(void *_data,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      no_resource:
 | 
					      no_resource:
 | 
				
			||||||
	pw_log_error("client-node needs a resource");
 | 
						pw_log_error("client-node needs a resource");
 | 
				
			||||||
	pw_resource_error(resource, -EINVAL, "no resource");
 | 
						pw_resource_error(resource, new_id, -EINVAL, "no resource");
 | 
				
			||||||
	goto done;
 | 
						goto done;
 | 
				
			||||||
      no_mem:
 | 
					      no_mem:
 | 
				
			||||||
	pw_log_error("can't create node");
 | 
						pw_log_error("can't create node");
 | 
				
			||||||
	pw_resource_error(resource, -ENOMEM, "no memory");
 | 
						pw_resource_error(resource, new_id, -ENOMEM, "no memory");
 | 
				
			||||||
	goto done;
 | 
						goto done;
 | 
				
			||||||
      done:
 | 
					      done:
 | 
				
			||||||
	if (properties)
 | 
						if (properties)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -308,6 +308,7 @@ static void do_portal_check(struct client_info *cinfo)
 | 
				
			||||||
	const char *handle;
 | 
						const char *handle;
 | 
				
			||||||
	const char *device;
 | 
						const char *device;
 | 
				
			||||||
	struct async_pending *p;
 | 
						struct async_pending *p;
 | 
				
			||||||
 | 
						struct pw_resource *core_resource;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	pw_log_info("ask portal for client %p", client);
 | 
						pw_log_info("ask portal for client %p", client);
 | 
				
			||||||
	pw_client_set_busy(client, true);
 | 
						pw_client_set_busy(client, true);
 | 
				
			||||||
| 
						 | 
					@ -382,7 +383,8 @@ static void do_portal_check(struct client_info *cinfo)
 | 
				
			||||||
	dbus_error_free(&error);
 | 
						dbus_error_free(&error);
 | 
				
			||||||
	goto not_allowed;
 | 
						goto not_allowed;
 | 
				
			||||||
      not_allowed:
 | 
					      not_allowed:
 | 
				
			||||||
	pw_resource_error(pw_client_get_core_resource(client), -EPERM, "not allowed");
 | 
						core_resource = pw_client_get_core_resource(client);
 | 
				
			||||||
 | 
						pw_resource_error(core_resource, 0, -EPERM, "not allowed");
 | 
				
			||||||
	return;
 | 
						return;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -114,7 +114,7 @@ static void *create_object(void *_data,
 | 
				
			||||||
			   uint32_t new_id)
 | 
								   uint32_t new_id)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct factory_data *d = _data;
 | 
						struct factory_data *d = _data;
 | 
				
			||||||
	struct pw_client *client;
 | 
						struct pw_client *client = NULL;
 | 
				
			||||||
	struct pw_node *output_node, *input_node;
 | 
						struct pw_node *output_node, *input_node;
 | 
				
			||||||
	struct pw_port *outport, *inport;
 | 
						struct pw_port *outport, *inport;
 | 
				
			||||||
	struct pw_core *core;
 | 
						struct pw_core *core;
 | 
				
			||||||
| 
						 | 
					@ -129,8 +129,8 @@ static void *create_object(void *_data,
 | 
				
			||||||
	int res;
 | 
						int res;
 | 
				
			||||||
	bool linger;
 | 
						bool linger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (resource == NULL)
 | 
						client = pw_resource_get_client(resource);
 | 
				
			||||||
		goto no_resource;
 | 
						core = pw_client_get_core(client);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (properties == NULL)
 | 
						if (properties == NULL)
 | 
				
			||||||
		goto no_properties;
 | 
							goto no_properties;
 | 
				
			||||||
| 
						 | 
					@ -151,9 +151,6 @@ static void *create_object(void *_data,
 | 
				
			||||||
	str = pw_properties_get(properties, PW_LINK_INPUT_PORT_ID);
 | 
						str = pw_properties_get(properties, PW_LINK_INPUT_PORT_ID);
 | 
				
			||||||
	input_port_id = str ? pw_properties_parse_int(str) : -1;
 | 
						input_port_id = str ? pw_properties_parse_int(str) : -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	client = pw_resource_get_client(resource);
 | 
					 | 
				
			||||||
	core = pw_client_get_core(client);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	global = pw_core_find_global(core, output_node_id);
 | 
						global = pw_core_find_global(core, output_node_id);
 | 
				
			||||||
	if (global == NULL || pw_global_get_type(global) != PW_TYPE_INTERFACE_Node)
 | 
						if (global == NULL || pw_global_get_type(global) != PW_TYPE_INTERFACE_Node)
 | 
				
			||||||
		goto no_output;
 | 
							goto no_output;
 | 
				
			||||||
| 
						 | 
					@ -224,36 +221,32 @@ static void *create_object(void *_data,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return link;
 | 
						return link;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      no_resource:
 | 
					 | 
				
			||||||
	pw_log_error("link factory needs a resource");
 | 
					 | 
				
			||||||
	pw_resource_error(resource, -EINVAL, "no resource");
 | 
					 | 
				
			||||||
	goto done;
 | 
					 | 
				
			||||||
      no_properties:
 | 
					      no_properties:
 | 
				
			||||||
	pw_log_error("link-factory needs properties");
 | 
						pw_log_error("link-factory needs properties");
 | 
				
			||||||
	pw_resource_error(resource, -EINVAL, "no properties");
 | 
						pw_resource_error(resource, new_id, -EINVAL, "no properties");
 | 
				
			||||||
	goto done;
 | 
						goto done;
 | 
				
			||||||
      no_output:
 | 
					      no_output:
 | 
				
			||||||
	pw_log_error("link-factory unknown output node %d", output_node_id);
 | 
						pw_log_error("link-factory unknown output node %d", output_node_id);
 | 
				
			||||||
	pw_resource_error(resource, -EINVAL, "unknown output node");
 | 
						pw_resource_error(resource, new_id, -EINVAL, "unknown output node");
 | 
				
			||||||
	goto done;
 | 
						goto done;
 | 
				
			||||||
      no_input:
 | 
					      no_input:
 | 
				
			||||||
	pw_log_error("link-factory unknown input node %d", input_node_id);
 | 
						pw_log_error("link-factory unknown input node %d", input_node_id);
 | 
				
			||||||
	pw_resource_error(resource, -EINVAL, "unknown input node");
 | 
						pw_resource_error(resource, new_id, -EINVAL, "unknown input node");
 | 
				
			||||||
	goto done;
 | 
						goto done;
 | 
				
			||||||
      no_output_port:
 | 
					      no_output_port:
 | 
				
			||||||
	pw_log_error("link-factory unknown output port %d", output_port_id);
 | 
						pw_log_error("link-factory unknown output port %d", output_port_id);
 | 
				
			||||||
	pw_resource_error(resource, -EINVAL, "unknown output port");
 | 
						pw_resource_error(resource, new_id, -EINVAL, "unknown output port");
 | 
				
			||||||
	goto done;
 | 
						goto done;
 | 
				
			||||||
      no_input_port:
 | 
					      no_input_port:
 | 
				
			||||||
	pw_log_error("link-factory unknown input port %d", input_port_id);
 | 
						pw_log_error("link-factory unknown input port %d", input_port_id);
 | 
				
			||||||
	pw_resource_error(resource, -EINVAL, "unknown input port");
 | 
						pw_resource_error(resource, new_id, -EINVAL, "unknown input port");
 | 
				
			||||||
	goto done;
 | 
						goto done;
 | 
				
			||||||
      no_mem:
 | 
					      no_mem:
 | 
				
			||||||
	pw_log_error("can't create link");
 | 
						pw_log_error("can't create link");
 | 
				
			||||||
	pw_resource_error(resource, -ENOMEM, "no memory");
 | 
						pw_resource_error(resource, new_id, -ENOMEM, "no memory");
 | 
				
			||||||
	goto done;
 | 
						goto done;
 | 
				
			||||||
      no_bind:
 | 
					      no_bind:
 | 
				
			||||||
	pw_resource_error(resource, res, "can't bind link");
 | 
						pw_resource_error(resource, new_id, res, "can't bind link");
 | 
				
			||||||
	goto done;
 | 
						goto done;
 | 
				
			||||||
      done:
 | 
					      done:
 | 
				
			||||||
	if (properties)
 | 
						if (properties)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -120,7 +120,7 @@ static void *create_object(void *_data,
 | 
				
			||||||
      no_properties:
 | 
					      no_properties:
 | 
				
			||||||
	pw_log_error("needed properties: spa.library.name=<library-name> spa.factory.name=<factory-name>");
 | 
						pw_log_error("needed properties: spa.library.name=<library-name> spa.factory.name=<factory-name>");
 | 
				
			||||||
	if (resource) {
 | 
						if (resource) {
 | 
				
			||||||
		pw_resource_error(resource, -EINVAL,
 | 
							pw_resource_error(resource, new_id, -EINVAL,
 | 
				
			||||||
					"needed properties: "
 | 
										"needed properties: "
 | 
				
			||||||
						"spa.library.name=<library-name> "
 | 
											"spa.library.name=<library-name> "
 | 
				
			||||||
						"spa.factory.name=<factory-name>");
 | 
											"spa.factory.name=<factory-name>");
 | 
				
			||||||
| 
						 | 
					@ -129,7 +129,7 @@ static void *create_object(void *_data,
 | 
				
			||||||
      no_mem:
 | 
					      no_mem:
 | 
				
			||||||
	pw_log_error("can't create node");
 | 
						pw_log_error("can't create node");
 | 
				
			||||||
	if (resource) {
 | 
						if (resource) {
 | 
				
			||||||
		pw_resource_error(resource, -ENOMEM, "no memory");
 | 
							pw_resource_error(resource, new_id, -ENOMEM, "no memory");
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return NULL;
 | 
						return NULL;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -117,7 +117,7 @@ global_bind(void *_data, struct pw_client *client, uint32_t permissions,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      no_mem:
 | 
					      no_mem:
 | 
				
			||||||
	pw_log_error("can't create client resource");
 | 
						pw_log_error("can't create client resource");
 | 
				
			||||||
	pw_resource_error(client->core_resource, -ENOMEM, "no memory");
 | 
						pw_resource_error(client->core_resource, id, -ENOMEM, "no memory");
 | 
				
			||||||
	return;
 | 
						return;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -212,8 +212,9 @@ static void core_get_registry(void *object, uint32_t version, uint32_t new_id)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      no_mem:
 | 
					      no_mem:
 | 
				
			||||||
	pw_log_error("can't create registry resource");
 | 
						pw_log_error("can't create registry resource");
 | 
				
			||||||
	pw_core_resource_error(client->core_resource,
 | 
						pw_core_resource_error(client->core_resource, new_id, -ENOMEM, "no memory");
 | 
				
			||||||
			       resource->id, -ENOMEM, "no memory");
 | 
						pw_map_insert_at(&client->objects, new_id, NULL);
 | 
				
			||||||
 | 
						pw_core_resource_remove_id(client->core_resource, new_id);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
| 
						 | 
					@ -253,29 +254,32 @@ core_create_object(void *object,
 | 
				
			||||||
	/* error will be posted */
 | 
						/* error will be posted */
 | 
				
			||||||
	obj = pw_factory_create_object(factory, resource, type, version, properties, new_id);
 | 
						obj = pw_factory_create_object(factory, resource, type, version, properties, new_id);
 | 
				
			||||||
	if (obj == NULL)
 | 
						if (obj == NULL)
 | 
				
			||||||
		goto no_mem;
 | 
							goto error;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      done:
 | 
					 | 
				
			||||||
	return;
 | 
						return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      no_factory:
 | 
					      no_factory:
 | 
				
			||||||
	pw_log_error("can't find node factory %s", factory_name);
 | 
						pw_log_error("can't find node factory %s", factory_name);
 | 
				
			||||||
	pw_core_resource_error(client->core_resource,
 | 
						pw_core_resource_error(client->core_resource,
 | 
				
			||||||
			       resource->id, -EINVAL, "unknown factory name %s", factory_name);
 | 
								       new_id, -EINVAL, "unknown factory name %s", factory_name);
 | 
				
			||||||
	goto done;
 | 
						goto error;
 | 
				
			||||||
      wrong_version:
 | 
					      wrong_version:
 | 
				
			||||||
      wrong_type:
 | 
					      wrong_type:
 | 
				
			||||||
	pw_log_error("invalid resource type/version");
 | 
						pw_log_error("invalid resource type/version");
 | 
				
			||||||
	pw_core_resource_error(client->core_resource,
 | 
						pw_core_resource_error(client->core_resource,
 | 
				
			||||||
			       resource->id, -EINVAL, "wrong resource type/version");
 | 
								       new_id, -EINVAL, "wrong resource type/version");
 | 
				
			||||||
	goto done;
 | 
						goto error;
 | 
				
			||||||
      no_properties:
 | 
					      no_properties:
 | 
				
			||||||
	pw_log_error("can't create properties");
 | 
						pw_log_error("can't create properties");
 | 
				
			||||||
	goto no_mem;
 | 
						goto no_mem;
 | 
				
			||||||
      no_mem:
 | 
					      no_mem:
 | 
				
			||||||
	pw_core_resource_error(client->core_resource,
 | 
						pw_core_resource_error(client->core_resource,
 | 
				
			||||||
			       resource->id, -ENOMEM, "no memory");
 | 
								       new_id, -ENOMEM, "no memory");
 | 
				
			||||||
	goto done;
 | 
						goto error;
 | 
				
			||||||
 | 
					      error:
 | 
				
			||||||
 | 
						pw_map_insert_at(&client->objects, new_id, NULL);
 | 
				
			||||||
 | 
						pw_core_resource_remove_id(client->core_resource, new_id);
 | 
				
			||||||
 | 
						return;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void core_destroy(void *object, uint32_t id)
 | 
					static void core_destroy(void *object, uint32_t id)
 | 
				
			||||||
| 
						 | 
					@ -296,8 +300,7 @@ static void core_destroy(void *object, uint32_t id)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      no_resource:
 | 
					      no_resource:
 | 
				
			||||||
	pw_log_error("can't find resouce %d", id);
 | 
						pw_log_error("can't find resouce %d", id);
 | 
				
			||||||
	pw_core_resource_error(client->core_resource,
 | 
						pw_core_resource_error(client->core_resource, id, -EINVAL, "unknown resouce %d", id);
 | 
				
			||||||
			       resource->id, -EINVAL, "unknown resouce %d", id);
 | 
					 | 
				
			||||||
	goto done;
 | 
						goto done;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -116,8 +116,7 @@ global_bind(void *_data, struct pw_client *client, uint32_t permissions,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      no_mem:
 | 
					      no_mem:
 | 
				
			||||||
	pw_log_error("can't create factory resource");
 | 
						pw_log_error("can't create factory resource");
 | 
				
			||||||
	pw_core_resource_error(client->core_resource,
 | 
						pw_core_resource_error(client->core_resource, id, -ENOMEM, "no memory");
 | 
				
			||||||
			       client->core_resource->id, -ENOMEM, "no memory");
 | 
					 | 
				
			||||||
	return;
 | 
						return;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -242,8 +242,7 @@ pw_global_bind(struct pw_global *global, struct pw_client *client, uint32_t perm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
     wrong_version:
 | 
					     wrong_version:
 | 
				
			||||||
	res = -EINVAL;
 | 
						res = -EINVAL;
 | 
				
			||||||
	pw_core_resource_error(client->core_resource,
 | 
						pw_core_resource_error(client->core_resource, id,
 | 
				
			||||||
			       client->core_resource->id,
 | 
					 | 
				
			||||||
			     res, "id %d: interface version %d < %d",
 | 
								     res, "id %d: interface version %d < %d",
 | 
				
			||||||
			     id, global->version, version);
 | 
								     id, global->version, version);
 | 
				
			||||||
	return res;
 | 
						return res;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1168,8 +1168,7 @@ global_bind(void *_data, struct pw_client *client, uint32_t permissions,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      no_mem:
 | 
					      no_mem:
 | 
				
			||||||
	pw_log_error("can't create link resource");
 | 
						pw_log_error("can't create link resource");
 | 
				
			||||||
	pw_core_resource_error(client->core_resource,
 | 
						pw_core_resource_error(client->core_resource, id, -ENOMEM, "no memory");
 | 
				
			||||||
			       client->core_resource->id, -ENOMEM, "no memory");
 | 
					 | 
				
			||||||
	return;
 | 
						return;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -133,8 +133,7 @@ global_bind(void *_data, struct pw_client *client, uint32_t permissions,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      no_mem:
 | 
					      no_mem:
 | 
				
			||||||
	pw_log_error("can't create module resource");
 | 
						pw_log_error("can't create module resource");
 | 
				
			||||||
	pw_core_resource_error(client->core_resource,
 | 
						pw_core_resource_error(client->core_resource, id, -ENOMEM, "no memory");
 | 
				
			||||||
			       client->core_resource->id, -ENOMEM, "no memory");
 | 
					 | 
				
			||||||
	return;
 | 
						return;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -401,8 +401,7 @@ global_bind(void *_data, struct pw_client *client, uint32_t permissions,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      no_mem:
 | 
					      no_mem:
 | 
				
			||||||
	pw_log_error("can't create node resource");
 | 
						pw_log_error("can't create node resource");
 | 
				
			||||||
	pw_core_resource_error(client->core_resource,
 | 
						pw_core_resource_error(client->core_resource, id, -ENOMEM, "no memory");
 | 
				
			||||||
			       client->core_resource->id, -ENOMEM, "no memory");
 | 
					 | 
				
			||||||
	return;
 | 
						return;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -435,8 +435,7 @@ global_bind(void *_data, struct pw_client *client, uint32_t permissions,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      no_mem:
 | 
					      no_mem:
 | 
				
			||||||
	pw_log_error("can't create port resource");
 | 
						pw_log_error("can't create port resource");
 | 
				
			||||||
	pw_core_resource_error(client->core_resource,
 | 
						pw_core_resource_error(client->core_resource, id, -ENOMEM, "no memory");
 | 
				
			||||||
			       client->core_resource->id, -ENOMEM, "no memory");
 | 
					 | 
				
			||||||
	return;
 | 
						return;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -146,10 +146,10 @@ const struct pw_protocol_marshal *pw_resource_get_marshal(struct pw_resource *re
 | 
				
			||||||
	return resource->marshal;
 | 
						return resource->marshal;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void pw_resource_error(struct pw_resource *resource, int result, const char *error)
 | 
					void pw_resource_error(struct pw_resource *resource, uint32_t id, int result, const char *error)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if (resource->client->core_resource)
 | 
						if (resource->client->core_resource)
 | 
				
			||||||
		pw_core_resource_error(resource->client->core_resource, resource->id, result, error);
 | 
							pw_core_resource_error(resource->client->core_resource, id, result, error);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void pw_resource_destroy(struct pw_resource *resource)
 | 
					void pw_resource_destroy(struct pw_resource *resource)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -115,7 +115,7 @@ void pw_resource_add_override(struct pw_resource *resource,
 | 
				
			||||||
			      void *data);
 | 
								      void *data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** Generate an error for a resource */
 | 
					/** Generate an error for a resource */
 | 
				
			||||||
void pw_resource_error(struct pw_resource *resource, int result, const char *error);
 | 
					void pw_resource_error(struct pw_resource *resource, uint32_t id, int result, const char *error);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** Get the implementation list of a resource */
 | 
					/** Get the implementation list of a resource */
 | 
				
			||||||
struct spa_hook_list *pw_resource_get_implementation(struct pw_resource *resource);
 | 
					struct spa_hook_list *pw_resource_get_implementation(struct pw_resource *resource);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue