resource: add function to send error to another resource

Make a function to send an error to another resource. This can be
used to send errors to proxies that now have a resource associated
with them, like in error cases.
This commit is contained in:
Wim Taymans 2020-02-25 15:05:51 +01:00
parent 1ab6167f35
commit 278cc9f90a
2 changed files with 20 additions and 5 deletions

View file

@ -225,16 +225,30 @@ uint32_t pw_resource_get_bound_id(struct pw_resource *resource)
return resource->bound_id;
}
static void SPA_PRINTF_FUNC(4, 0)
pw_resource_errorv_id(struct pw_resource *resource, uint32_t id, int res, const char *error, va_list ap)
{
struct pw_impl_client *client = resource->client;
if (client->core_resource != NULL)
pw_core_resource_errorv(client->core_resource,
id, client->recv_seq, res, error, ap);
}
SPA_EXPORT
void pw_resource_errorf(struct pw_resource *resource, int res, const char *error, ...)
{
va_list ap;
struct pw_impl_client *client = resource->client;
va_start(ap, error);
if (client->core_resource != NULL)
pw_core_resource_errorv(client->core_resource,
resource->id, client->recv_seq, res, error, ap);
pw_resource_errorv_id(resource, resource->id, res, error, ap);
va_end(ap);
}
SPA_EXPORT
void pw_resource_errorf_id(struct pw_resource *resource, uint32_t id, int res, const char *error, ...)
{
va_list ap;
va_start(ap, error);
pw_resource_errorv_id(resource, id, res, error, ap);
va_end(ap);
}

View file

@ -134,6 +134,7 @@ uint32_t pw_resource_get_bound_id(struct pw_resource *resource);
/** Generate an error for a resource */
void pw_resource_error(struct pw_resource *resource, int res, const char *error);
void pw_resource_errorf(struct pw_resource *resource, int res, const char *error, ...) SPA_PRINTF_FUNC(3, 4);
void pw_resource_errorf_id(struct pw_resource *resource, uint32_t id, int res, const char *error, ...) SPA_PRINTF_FUNC(4, 5);
/** Get the list of object listeners from a resource */
struct spa_hook_list *pw_resource_get_object_listeners(struct pw_resource *resource);