interfaces: make events return void

Events are dispatched with hooks and have no return value.

Make it possible to get the last resource and proxy sender value
for where we need it.
This commit is contained in:
Wim Taymans 2019-03-01 14:04:05 +01:00
parent 0390969228
commit 09c4683ef1
29 changed files with 269 additions and 330 deletions

@ -1 +1 @@
Subproject commit 91938991dc062085401f28ef8e847b9b2925b749
Subproject commit 6ca80e4ec7abb48ef19423b405c0add9f98f93a0

@ -1 +1 @@
Subproject commit 83b2aca07236cd29a2f6d138cadd324571b1c8d0
Subproject commit df5c1f4c6eae1e6fb17d0de6e6a0358c86ba3ffc

View file

@ -88,17 +88,17 @@ struct spa_device_events {
uint32_t version;
/** notify extra information about the device */
int (*info) (void *data, const struct spa_device_info *info);
void (*info) (void *data, const struct spa_device_info *info);
/** notify a result */
int (*result) (void *data, int seq, int res, const void *result);
void (*result) (void *data, int seq, int res, const void *result);
/** a device event */
int (*event) (void *data, struct spa_event *event);
void (*event) (void *data, struct spa_event *event);
/** info changed for an object managed by the device, info is NULL when
* the object is removed */
int (*object_info) (void *data, uint32_t id,
void (*object_info) (void *data, uint32_t id,
const struct spa_device_object_info *info);
};

View file

@ -36,7 +36,7 @@ struct spa_result_device_params_data {
struct spa_result_device_params data;
};
static inline int spa_result_func_device_params(void *data, int seq, int res,
static inline void spa_result_func_device_params(void *data, int seq, int res,
const void *result)
{
struct spa_result_device_params_data *d =
@ -47,7 +47,6 @@ static inline int spa_result_func_device_params(void *data, int seq, int res,
spa_pod_builder_raw_padded(d->builder, r->param, SPA_POD_SIZE(r->param));
d->data.next = r->next;
d->data.param = SPA_MEMBER(d->builder->data, offset, struct spa_pod);
return 0;
}
static inline int spa_device_enum_params_sync(struct spa_device *device,

View file

@ -126,10 +126,10 @@ struct spa_node_events {
uint32_t version; /**< version of this structure */
/** Emited when info changes */
int (*info) (void *data, const struct spa_node_info *info);
void (*info) (void *data, const struct spa_node_info *info);
/** Emited when port info changes, NULL when port is removed */
int (*port_info) (void *data,
void (*port_info) (void *data,
enum spa_direction direction, uint32_t port,
const struct spa_port_info *info);
@ -149,7 +149,7 @@ struct spa_node_events {
* the method call. Users should match the seq number from
* request to the reply.
*/
int (*result) (void *data, int seq, int res, const void *result);
void (*result) (void *data, int seq, int res, const void *result);
/**
* \param node a spa_node
@ -158,7 +158,7 @@ struct spa_node_events {
* This will be called when an out-of-bound event is notified
* on \a node.
*/
int (*event) (void *data, struct spa_event *event);
void (*event) (void *data, struct spa_event *event);
};
#define spa_node_emit(hooks,method,version,...) \

View file

@ -36,7 +36,7 @@ struct spa_result_node_params_data {
struct spa_result_node_params data;
};
static inline int spa_result_func_node_params(void *data,
static inline void spa_result_func_node_params(void *data,
int seq, int res, const void *result)
{
struct spa_result_node_params_data *d =
@ -47,7 +47,6 @@ static inline int spa_result_func_node_params(void *data,
spa_pod_builder_raw_padded(d->builder, r->param, SPA_POD_SIZE(r->param));
d->data.next = r->next;
d->data.param = SPA_MEMBER(d->builder->data, offset, struct spa_pod);
return 0;
}
static inline int spa_node_enum_params_sync(struct spa_node *node,

View file

@ -553,25 +553,20 @@ static int impl_node_send_command(struct spa_node *node, const struct spa_comman
return 0;
}
static int on_node_result(void *data, int seq, int res, const void *result)
static void on_node_result(void *data, int seq, int res, const void *result)
{
struct impl *this = data;
spa_log_debug(this->log, "%p: result %d %d", this, seq, res);
spa_node_emit_result(&this->hooks, seq, res, result);
return 0;
}
static int fmt_input_port_info(void *data,
static void fmt_input_port_info(void *data,
enum spa_direction direction, uint32_t port,
const struct spa_port_info *info)
{
struct impl *this = data;
if (direction != SPA_DIRECTION_INPUT)
return 0;
spa_node_emit_port_info(&this->hooks, direction, port, info);
return 0;
if (direction == SPA_DIRECTION_INPUT)
spa_node_emit_port_info(&this->hooks, direction, port, info);
}
static struct spa_node_events fmt_input_events = {
@ -580,17 +575,13 @@ static struct spa_node_events fmt_input_events = {
.result = on_node_result,
};
static int fmt_output_port_info(void *data,
static void fmt_output_port_info(void *data,
enum spa_direction direction, uint32_t port,
const struct spa_port_info *info)
{
struct impl *this = data;
if (direction != SPA_DIRECTION_OUTPUT)
return 0;
spa_node_emit_port_info(&this->hooks, direction, port, info);
return 0;
if (direction == SPA_DIRECTION_OUTPUT)
spa_node_emit_port_info(&this->hooks, direction, port, info);
}
static struct spa_node_events fmt_output_events = {

View file

@ -52,7 +52,7 @@ struct data {
struct spa_hook listener;
};
static int print_param(void *data, int seq, int res, const void *result)
static void print_param(void *data, int seq, int res, const void *result)
{
const struct spa_result_node_params *r = result;
@ -60,7 +60,6 @@ static int print_param(void *data, int seq, int res, const void *result)
spa_debug_format(16, NULL, r->param);
else
spa_debug_pod(16, NULL, r->param);
return 0;
}
static void
@ -129,7 +128,7 @@ inspect_port_params(struct data *data, struct spa_node *node,
}
}
static int node_info(void *_data, const struct spa_node_info *info)
static void node_info(void *_data, const struct spa_node_info *info)
{
struct data *data = _data;
@ -144,10 +143,9 @@ static int node_info(void *_data, const struct spa_node_info *info)
if (info->change_mask & SPA_NODE_CHANGE_MASK_PARAMS) {
inspect_node_params(data, data->node, info->n_params, info->params);
}
return 0;
}
static int node_port_info(void *_data, enum spa_direction direction, uint32_t id,
static void node_port_info(void *_data, enum spa_direction direction, uint32_t id,
const struct spa_port_info *info)
{
struct data *data = _data;
@ -170,7 +168,6 @@ static int node_port_info(void *_data, enum spa_direction direction, uint32_t id
info->n_params, info->params);
}
}
return 0;
}
static const struct spa_node_events node_events =

View file

@ -344,7 +344,7 @@ static int on_node_running(struct impl *impl, struct node *node)
return 0;
}
static int node_event_info(void *object, const struct pw_node_info *info)
static void node_event_info(void *object, const struct pw_node_info *info)
{
struct node *n = object;
struct impl *impl = n->obj.impl;
@ -364,10 +364,9 @@ static int node_event_info(void *object, const struct pw_node_info *info)
default:
break;
}
return 0;
}
static int node_event_param(void *object, int seq,
static void node_event_param(void *object, int seq,
uint32_t id, uint32_t index, uint32_t next,
const struct spa_pod *param)
{
@ -385,7 +384,7 @@ static int node_event_param(void *object, int seq,
if (n->media_type != SPA_MEDIA_TYPE_audio ||
n->media_subtype != SPA_MEDIA_SUBTYPE_raw)
return 0;
return;
spa_pod_object_fixate((struct spa_pod_object*)param);
@ -393,12 +392,12 @@ static int node_event_param(void *object, int seq,
goto error;
n->format = info;
return 0;
return;
error:
pw_log_warn("unhandled param:");
spa_debug_pod(2, NULL, param);
return -EINVAL;
return;
}
static const struct pw_node_proxy_events node_events = {
@ -580,15 +579,14 @@ handle_node(struct impl *impl, uint32_t id, uint32_t parent_id,
return 1;
}
static int port_event_info(void *object, const struct pw_port_info *info)
static void port_event_info(void *object, const struct pw_port_info *info)
{
struct port *p = object;
pw_log_debug(NAME" %p: info for port %d", p->obj.impl, p->obj.id);
p->info = pw_port_info_update(p->info, info);
return 0;
}
static int port_event_param(void *object, int seq,
static void port_event_param(void *object, int seq,
uint32_t id, uint32_t index, uint32_t next,
const struct spa_pod *param)
{
@ -599,29 +597,28 @@ static int port_event_param(void *object, int seq,
pw_log_debug(NAME" %p: param for port %d", p->obj.impl, p->obj.id);
if (node == NULL)
return 0;
return;
if (id != SPA_PARAM_EnumFormat)
return 0;
return;
if (node->manager)
node->manager->enabled = true;
if (spa_format_parse(param, &node->media_type, &node->media_subtype) < 0)
return 0;
return;
if (node->media_type != SPA_MEDIA_TYPE_audio ||
node->media_subtype != SPA_MEDIA_SUBTYPE_raw)
return 0;
return;
spa_pod_fixate((struct spa_pod*)param);
if (spa_format_audio_raw_parse(param, &info) < 0)
return -EINVAL;
return;
if (info.channels > node->format.channels)
node->format = info;
return 0;
}
static const struct pw_port_proxy_events port_events = {
@ -701,7 +698,7 @@ handle_port(struct impl *impl, uint32_t id, uint32_t parent_id, uint32_t type,
return 0;
}
static int client_event_info(void *object, const struct pw_client_info *info)
static void client_event_info(void *object, const struct pw_client_info *info)
{
struct client *c = object;
uint32_t i;
@ -712,7 +709,6 @@ static int client_event_info(void *object, const struct pw_client_info *info)
pw_log_debug(NAME" %p: %s = %s", c,
info->props->items[i].key,
info->props->items[i].value);
return 0;
}
static const struct pw_client_proxy_events client_events = {
@ -776,7 +772,7 @@ handle_client(struct impl *impl, uint32_t id, uint32_t parent_id,
return 0;
}
static int
static void
registry_global(void *data,uint32_t id, uint32_t parent_id,
uint32_t permissions, uint32_t type, uint32_t version,
const struct spa_dict *props)
@ -808,11 +804,9 @@ registry_global(void *data,uint32_t id, uint32_t parent_id,
}
else
schedule_rescan(impl);
return res;
}
static int
static void
registry_global_remove(void *data, uint32_t id)
{
struct impl *impl = data;
@ -821,7 +815,7 @@ registry_global_remove(void *data, uint32_t id)
pw_log_debug(NAME " %p: remove global '%d'", impl, id);
if ((obj = find_object(impl, id)) == NULL)
return 0;
return;
switch (obj->type) {
case PW_TYPE_INTERFACE_Node:
@ -837,7 +831,6 @@ registry_global_remove(void *data, uint32_t id)
}
remove_object(impl, obj);
schedule_rescan(impl);
return 0;
}
static const struct pw_registry_proxy_events registry_events = {
@ -1207,13 +1200,13 @@ do_link:
return 1;
}
static int dsp_node_event_info(void *object, const struct pw_node_info *info)
static void dsp_node_event_info(void *object, const struct pw_node_info *info)
{
struct session *s = object;
struct node *dsp;
if ((dsp = find_object(s->impl, info->id)) == NULL)
return 0;
return;
pw_log_debug(NAME" %p: dsp node session %d id %d", dsp->obj.impl, s->id, info->id);
@ -1228,7 +1221,6 @@ static int dsp_node_event_info(void *object, const struct pw_node_info *info)
dsp->format = s->node->format;
dsp->profile_format = dsp->format;
dsp->profile_format.format = SPA_AUDIO_FORMAT_F32P;
return 0;
}
static const struct pw_node_proxy_events dsp_node_events = {
@ -1309,13 +1301,12 @@ static void do_rescan(struct impl *impl)
rescan_node(impl, node);
}
static int core_done(void *data, uint32_t id, int seq)
static void core_done(void *data, uint32_t id, int seq)
{
struct impl *impl = data;
pw_log_debug("media-session %p: sync %d %d/%d", impl, id, seq, impl->seq);
if (impl->seq == seq)
do_rescan(impl);
return 0;
}
static const struct pw_core_proxy_events core_events = {

View file

@ -292,7 +292,7 @@ static void remove_pending(struct pending *p)
}
}
static int
static void
on_core_info (void *data, const struct pw_core_info *info)
{
GstPipeWireDeviceProvider *self = data;
@ -300,7 +300,7 @@ on_core_info (void *data, const struct pw_core_info *info)
const gchar *value;
if (info == NULL || info->props == NULL)
return -EINVAL;
return;
value = spa_dict_lookup (info->props, "monitors");
if (value) {
@ -317,10 +317,9 @@ on_core_info (void *data, const struct pw_core_info *info)
}
g_strfreev (monitors);
}
return 0;
}
static int
static void
on_core_done (void *data, uint32_t id, int seq)
{
GstPipeWireDeviceProvider *self = data;
@ -339,7 +338,6 @@ on_core_done (void *data, uint32_t id, int seq)
if (self->main_loop)
pw_thread_loop_signal (self->main_loop, FALSE);
}
return 0;
}
static const struct pw_core_proxy_events core_events = {
@ -372,14 +370,13 @@ on_state_changed (void *data, enum pw_remote_state old, enum pw_remote_state sta
pw_thread_loop_signal (self->main_loop, FALSE);
}
static int port_event_info(void *data, const struct pw_port_info *info)
static void port_event_info(void *data, const struct pw_port_info *info)
{
struct port_data *port_data = data;
pw_log_debug("%p", port_data);
return 0;
}
static int port_event_param(void *data, int seq, uint32_t id,
static void port_event_param(void *data, int seq, uint32_t id,
uint32_t index, uint32_t next, const struct spa_pod *param)
{
struct port_data *port_data = data;
@ -391,7 +388,6 @@ static int port_event_param(void *data, int seq, uint32_t id,
c1 = gst_caps_from_format (param);
if (c1 && node_data->caps)
gst_caps_append (node_data->caps, c1);
return 0;
}
static const struct pw_port_proxy_events port_events = {
@ -400,12 +396,11 @@ static const struct pw_port_proxy_events port_events = {
.param = port_event_param
};
static int node_event_info(void *data, const struct pw_node_info *info)
static void node_event_info(void *data, const struct pw_node_info *info)
{
struct node_data *node_data = data;
pw_log_debug("%p", node_data);
node_data->info = pw_node_info_update(node_data->info, info);
return 0;
}
static const struct pw_node_proxy_events node_events = {
@ -454,7 +449,7 @@ static const struct pw_proxy_events proxy_port_events = {
.destroy = destroy_port_proxy,
};
static int registry_event_global(void *data, uint32_t id, uint32_t parent_id, uint32_t permissions,
static void registry_event_global(void *data, uint32_t id, uint32_t parent_id, uint32_t permissions,
uint32_t type, uint32_t version,
const struct spa_dict *props)
{
@ -487,7 +482,7 @@ static int registry_event_global(void *data, uint32_t id, uint32_t parent_id, ui
struct port_data *pd;
if ((nd = find_node_data(rd, parent_id)) == NULL)
return -EINVAL;
return;
port = pw_registry_proxy_bind(rd->registry,
id, PW_TYPE_INTERFACE_Port,
@ -507,16 +502,15 @@ static int registry_event_global(void *data, uint32_t id, uint32_t parent_id, ui
add_pending(self, &pd->pending, do_add_node, pd);
}
return 0;
return;
no_mem:
GST_ERROR_OBJECT(self, "failed to create proxy");
return -ENOMEM;
return;
}
static int registry_event_global_remove(void *data, uint32_t id)
static void registry_event_global_remove(void *data, uint32_t id)
{
return 0;
}
static const struct pw_registry_proxy_events registry_events = {

View file

@ -507,7 +507,7 @@ static int impl_node_add_listener(struct spa_node *node,
emit_port_info(this, this->out_ports[i]);
}
if (this->resource)
res = pw_resource_sync(this->resource, 0);
res = pw_resource_ping(this->resource, 0);
spa_hook_list_join(&this->hooks, &save);
@ -539,7 +539,7 @@ impl_node_sync(struct spa_node *node, int seq)
pw_log_debug("client-node %p: sync", node);
if (this->resource == NULL)
return -EIO;
return pw_resource_sync(this->resource, seq);
return pw_resource_ping(this->resource, seq);
}
static void
@ -1236,12 +1236,12 @@ static void client_node_resource_error(void *data, int seq, int res, const char
spa_node_emit_result(&this->hooks, seq, res, &result);
}
static void client_node_resource_done(void *data, int seq)
static void client_node_resource_pong(void *data, int seq)
{
struct impl *impl = data;
struct node *this = &impl->node;
pw_log_debug("client-node %p: emit result %d", this, seq);
pw_log_debug("client-node %p: got pong, emit result %d", this, seq);
spa_node_emit_result(&this->hooks, seq, 0, NULL);
}
@ -1600,7 +1600,7 @@ static const struct pw_resource_events resource_events = {
PW_VERSION_RESOURCE_EVENTS,
.destroy = client_node_resource_destroy,
.error = client_node_resource_error,
.done = client_node_resource_done,
.pong = client_node_resource_pong,
};
static int root_impl_process(void *data, struct spa_graph_node *node)

View file

@ -279,7 +279,7 @@ static int impl_node_send_command(struct spa_node *node, const struct spa_comman
return res;
}
static int adapter_port_info(void *data,
static void adapter_port_info(void *data,
enum spa_direction direction, uint32_t port_id,
const struct spa_port_info *info)
{
@ -288,16 +288,14 @@ static int adapter_port_info(void *data,
if (direction == impl->direction)
spa_node_emit_port_info(&this->hooks, direction, port_id, info);
return 0;
}
static int adapter_result(void *data, int seq, int res, const void *result)
static void adapter_result(void *data, int seq, int res, const void *result)
{
struct impl *impl = data;
struct node *this = &impl->node;
pw_log_debug("%p: result %d %d", this, seq, res);
spa_node_emit_result(&this->hooks, seq, res, result);
return 0;
}
static const struct spa_node_events adapter_node_events = {

View file

@ -132,7 +132,7 @@ process_messages(struct client_data *data)
if (!pw_protocol_native_connection_get_next(conn, &opcode, &id, &message, &size, &seq))
break;
client->seq = seq;
client->recv_seq = seq;
pw_log_trace("protocol-native %p: got message %d from %u", client->protocol,
opcode, id);
@ -493,7 +493,7 @@ on_remote_data(void *data, int fd, enum spa_io mask)
pw_log_trace("protocol-native %p: got message %d from %u seq:%d",
this, opcode, id, seq);
this->seq = seq;
this->recv_seq = seq;
if (debug_messages) {
fprintf(stderr, "<<<<<<<<< in: %d %d %d %d\n", id, opcode, size, seq);
@ -784,7 +784,8 @@ static int impl_ext_end_proxy(struct pw_proxy *proxy,
struct spa_pod_builder *builder)
{
struct client *impl = SPA_CONTAINER_OF(proxy->remote->conn, struct client, this);
return pw_protocol_native_connection_end(impl->connection, builder);
struct pw_remote *remote = proxy->remote;
return remote->send_seq = pw_protocol_native_connection_end(impl->connection, builder);
}
static struct spa_pod_builder *
@ -809,7 +810,8 @@ static int impl_ext_end_resource(struct pw_resource *resource,
struct spa_pod_builder *builder)
{
struct client_data *data = resource->client->user_data;
return pw_protocol_native_connection_end(data->connection, builder);
struct pw_client *client = resource->client;
return client->send_seq = pw_protocol_native_connection_end(data->connection, builder);
}
const static struct pw_protocol_native_ext protocol_ext_impl = {
PW_VERSION_PROTOCOL_NATIVE_EXT,

View file

@ -59,12 +59,12 @@ static int core_method_marshal_sync(void *object, uint32_t id, int seq)
return pw_protocol_native_end_proxy(proxy, b);
}
static int core_method_marshal_done(void *object, uint32_t id, int seq)
static int core_method_marshal_pong(void *object, uint32_t id, int seq)
{
struct pw_proxy *proxy = object;
struct spa_pod_builder *b;
b = pw_protocol_native_begin_proxy(proxy, PW_CORE_PROXY_METHOD_DONE, NULL);
b = pw_protocol_native_begin_proxy(proxy, PW_CORE_PROXY_METHOD_PONG, NULL);
spa_pod_builder_add_struct(b,
SPA_POD_Int(id),
@ -228,7 +228,7 @@ static int core_event_demarshal_done(void *object, void *data, size_t size)
return pw_proxy_notify(proxy, struct pw_core_proxy_events, done, 0, id, seq);
}
static int core_event_demarshal_sync(void *object, void *data, size_t size)
static int core_event_demarshal_ping(void *object, void *data, size_t size)
{
struct pw_proxy *proxy = object;
struct spa_pod_parser prs;
@ -240,7 +240,7 @@ static int core_event_demarshal_sync(void *object, void *data, size_t size)
SPA_POD_Int(&seq)) < 0)
return -EINVAL;
return pw_proxy_notify(proxy, struct pw_core_proxy_events, sync, 0, id, seq);
return pw_proxy_notify(proxy, struct pw_core_proxy_events, ping, 0, id, seq);
}
static int core_event_demarshal_error(void *object, void *data, size_t size)
@ -275,7 +275,7 @@ static int core_event_demarshal_remove_id(void *object, void *data, size_t size)
return pw_proxy_notify(proxy, struct pw_core_proxy_events, remove_id, 0, id);
}
static int core_event_marshal_info(void *object, const struct pw_core_info *info)
static void core_event_marshal_info(void *object, const struct pw_core_info *info)
{
struct pw_resource *resource = object;
struct spa_pod_builder *b;
@ -296,10 +296,10 @@ static int core_event_marshal_info(void *object, const struct pw_core_info *info
push_dict(b, info->props);
spa_pod_builder_pop(b, &f);
return pw_protocol_native_end_resource(resource, b);
pw_protocol_native_end_resource(resource, b);
}
static int core_event_marshal_done(void *object, uint32_t id, int seq)
static void core_event_marshal_done(void *object, uint32_t id, int seq)
{
struct pw_resource *resource = object;
struct spa_pod_builder *b;
@ -310,24 +310,24 @@ static int core_event_marshal_done(void *object, uint32_t id, int seq)
SPA_POD_Int(id),
SPA_POD_Int(seq));
return pw_protocol_native_end_resource(resource, b);
pw_protocol_native_end_resource(resource, b);
}
static int core_event_marshal_sync(void *object, uint32_t id, int seq)
static void core_event_marshal_ping(void *object, uint32_t id, int seq)
{
struct pw_resource *resource = object;
struct spa_pod_builder *b;
b = pw_protocol_native_begin_resource(resource, PW_CORE_PROXY_EVENT_SYNC, &seq);
b = pw_protocol_native_begin_resource(resource, PW_CORE_PROXY_EVENT_PING, &seq);
spa_pod_builder_add_struct(b,
SPA_POD_Int(id),
SPA_POD_Int(seq));
return pw_protocol_native_end_resource(resource, b);
pw_protocol_native_end_resource(resource, b);
}
static int core_event_marshal_error(void *object, uint32_t id, int seq, int res, const char *error)
static void core_event_marshal_error(void *object, uint32_t id, int seq, int res, const char *error)
{
struct pw_resource *resource = object;
struct spa_pod_builder *b;
@ -340,10 +340,10 @@ static int core_event_marshal_error(void *object, uint32_t id, int seq, int res,
SPA_POD_Int(res),
SPA_POD_String(error));
return pw_protocol_native_end_resource(resource, b);
pw_protocol_native_end_resource(resource, b);
}
static int core_event_marshal_remove_id(void *object, uint32_t id)
static void core_event_marshal_remove_id(void *object, uint32_t id)
{
struct pw_resource *resource = object;
struct spa_pod_builder *b;
@ -353,7 +353,7 @@ static int core_event_marshal_remove_id(void *object, uint32_t id)
spa_pod_builder_add_struct(b,
SPA_POD_Int(id));
return pw_protocol_native_end_resource(resource, b);
pw_protocol_native_end_resource(resource, b);
}
static int core_method_demarshal_hello(void *object, void *data, size_t size)
@ -385,7 +385,7 @@ static int core_method_demarshal_sync(void *object, void *data, size_t size)
return pw_resource_do(resource, struct pw_core_proxy_methods, sync, 0, id, seq);
}
static int core_method_demarshal_done(void *object, void *data, size_t size)
static int core_method_demarshal_pong(void *object, void *data, size_t size)
{
struct pw_resource *resource = object;
struct spa_pod_parser prs;
@ -397,7 +397,7 @@ static int core_method_demarshal_done(void *object, void *data, size_t size)
SPA_POD_Int(&seq)) < 0)
return -EINVAL;
return pw_resource_do(resource, struct pw_core_proxy_methods, done, 0, id, seq);
return pw_resource_do(resource, struct pw_core_proxy_methods, pong, 0, id, seq);
}
static int core_method_demarshal_error(void *object, void *data, size_t size)
@ -489,7 +489,7 @@ static int core_method_demarshal_destroy(void *object, void *data, size_t size)
return pw_resource_do(resource, struct pw_core_proxy_methods, destroy, 0, id);
}
static int registry_marshal_global(void *object, uint32_t id, uint32_t parent_id, uint32_t permissions,
static void registry_marshal_global(void *object, uint32_t id, uint32_t parent_id, uint32_t permissions,
uint32_t type, uint32_t version, const struct spa_dict *props)
{
struct pw_resource *resource = object;
@ -509,10 +509,10 @@ static int registry_marshal_global(void *object, uint32_t id, uint32_t parent_id
push_dict(b, props);
spa_pod_builder_pop(b, &f);
return pw_protocol_native_end_resource(resource, b);
pw_protocol_native_end_resource(resource, b);
}
static int registry_marshal_global_remove(void *object, uint32_t id)
static void registry_marshal_global_remove(void *object, uint32_t id)
{
struct pw_resource *resource = object;
struct spa_pod_builder *b;
@ -521,7 +521,7 @@ static int registry_marshal_global_remove(void *object, uint32_t id)
spa_pod_builder_add_struct(b, SPA_POD_Int(id));
return pw_protocol_native_end_resource(resource, b);
pw_protocol_native_end_resource(resource, b);
}
static int registry_demarshal_bind(void *object, void *data, size_t size)
@ -555,7 +555,7 @@ static int registry_demarshal_destroy(void *object, void *data, size_t size)
return pw_resource_do(resource, struct pw_registry_proxy_methods, destroy, 0, id);
}
static int module_marshal_info(void *object, const struct pw_module_info *info)
static void module_marshal_info(void *object, const struct pw_module_info *info)
{
struct pw_resource *resource = object;
struct spa_pod_builder *b;
@ -574,7 +574,7 @@ static int module_marshal_info(void *object, const struct pw_module_info *info)
push_dict(b, info->props);
spa_pod_builder_pop(b, &f);
return pw_protocol_native_end_resource(resource, b);
pw_protocol_native_end_resource(resource, b);
}
static int module_demarshal_info(void *object, void *data, size_t size)
@ -612,7 +612,7 @@ static int module_demarshal_info(void *object, void *data, size_t size)
return pw_proxy_notify(proxy, struct pw_module_proxy_events, info, 0, &info);
}
static int device_marshal_info(void *object, const struct pw_device_info *info)
static void device_marshal_info(void *object, const struct pw_device_info *info)
{
struct pw_resource *resource = object;
struct spa_pod_builder *b;
@ -630,7 +630,7 @@ static int device_marshal_info(void *object, const struct pw_device_info *info)
push_params(b, info->n_params, info->params);
spa_pod_builder_pop(b, &f);
return pw_protocol_native_end_resource(resource, b);
pw_protocol_native_end_resource(resource, b);
}
static int device_demarshal_info(void *object, void *data, size_t size)
@ -682,7 +682,7 @@ static int device_demarshal_info(void *object, void *data, size_t size)
return pw_proxy_notify(proxy, struct pw_device_proxy_events, info, 0, &info);
}
static int device_marshal_param(void *object, int seq, uint32_t id, uint32_t index, uint32_t next,
static void device_marshal_param(void *object, int seq, uint32_t id, uint32_t index, uint32_t next,
const struct spa_pod *param)
{
struct pw_resource *resource = object;
@ -697,7 +697,7 @@ static int device_marshal_param(void *object, int seq, uint32_t id, uint32_t ind
SPA_POD_Int(next),
SPA_POD_Pod(param));
return pw_protocol_native_end_resource(resource, b);
pw_protocol_native_end_resource(resource, b);
}
static int device_demarshal_param(void *object, void *data, size_t size)
@ -792,7 +792,7 @@ static int device_demarshal_set_param(void *object, void *data, size_t size)
return pw_resource_do(resource, struct pw_device_proxy_methods, set_param, 0, id, flags, param);
}
static int factory_marshal_info(void *object, const struct pw_factory_info *info)
static void factory_marshal_info(void *object, const struct pw_factory_info *info)
{
struct pw_resource *resource = object;
struct spa_pod_builder *b;
@ -811,7 +811,7 @@ static int factory_marshal_info(void *object, const struct pw_factory_info *info
push_dict(b, info->props);
spa_pod_builder_pop(b, &f);
return pw_protocol_native_end_resource(resource, b);
pw_protocol_native_end_resource(resource, b);
}
static int factory_demarshal_info(void *object, void *data, size_t size)
@ -849,7 +849,7 @@ static int factory_demarshal_info(void *object, void *data, size_t size)
return pw_proxy_notify(proxy, struct pw_factory_proxy_events, info, 0, &info);
}
static int node_marshal_info(void *object, const struct pw_node_info *info)
static void node_marshal_info(void *object, const struct pw_node_info *info)
{
struct pw_resource *resource = object;
struct spa_pod_builder *b;
@ -873,7 +873,7 @@ static int node_marshal_info(void *object, const struct pw_node_info *info)
push_params(b, info->n_params, info->params);
spa_pod_builder_pop(b, &f);
return pw_protocol_native_end_resource(resource, b);
pw_protocol_native_end_resource(resource, b);
}
static int node_demarshal_info(void *object, void *data, size_t size)
@ -931,7 +931,7 @@ static int node_demarshal_info(void *object, void *data, size_t size)
return pw_proxy_notify(proxy, struct pw_node_proxy_events, info, 0, &info);
}
static int node_marshal_param(void *object, int seq, uint32_t id,
static void node_marshal_param(void *object, int seq, uint32_t id,
uint32_t index, uint32_t next, const struct spa_pod *param)
{
struct pw_resource *resource = object;
@ -946,7 +946,7 @@ static int node_marshal_param(void *object, int seq, uint32_t id,
SPA_POD_Int(next),
SPA_POD_Pod(param));
return pw_protocol_native_end_resource(resource, b);
pw_protocol_native_end_resource(resource, b);
}
static int node_demarshal_param(void *object, void *data, size_t size)
@ -1066,7 +1066,7 @@ static int node_demarshal_send_command(void *object, void *data, size_t size)
return pw_resource_do(resource, struct pw_node_proxy_methods, send_command, 0, command);
}
static int port_marshal_info(void *object, const struct pw_port_info *info)
static void port_marshal_info(void *object, const struct pw_port_info *info)
{
struct pw_resource *resource = object;
struct spa_pod_builder *b;
@ -1084,7 +1084,7 @@ static int port_marshal_info(void *object, const struct pw_port_info *info)
push_params(b, info->n_params, info->params);
spa_pod_builder_pop(b, &f);
return pw_protocol_native_end_resource(resource, b);
pw_protocol_native_end_resource(resource, b);
}
static int port_demarshal_info(void *object, void *data, size_t size)
@ -1135,7 +1135,7 @@ static int port_demarshal_info(void *object, void *data, size_t size)
return pw_proxy_notify(proxy, struct pw_port_proxy_events, info, 0, &info);
}
static int port_marshal_param(void *object, int seq, uint32_t id,
static void port_marshal_param(void *object, int seq, uint32_t id,
uint32_t index, uint32_t next, const struct spa_pod *param)
{
struct pw_resource *resource = object;
@ -1150,7 +1150,7 @@ static int port_marshal_param(void *object, int seq, uint32_t id,
SPA_POD_Int(next),
SPA_POD_Pod(param));
return pw_protocol_native_end_resource(resource, b);
pw_protocol_native_end_resource(resource, b);
}
static int port_demarshal_param(void *object, void *data, size_t size)
@ -1213,7 +1213,7 @@ static int port_demarshal_enum_params(void *object, void *data, size_t size)
seq, id, index, num, filter);
}
static int client_marshal_info(void *object, const struct pw_client_info *info)
static void client_marshal_info(void *object, const struct pw_client_info *info)
{
struct pw_resource *resource = object;
struct spa_pod_builder *b;
@ -1229,7 +1229,7 @@ static int client_marshal_info(void *object, const struct pw_client_info *info)
push_dict(b, info->props);
spa_pod_builder_pop(b, &f);
return pw_protocol_native_end_resource(resource, b);
pw_protocol_native_end_resource(resource, b);
}
static int client_demarshal_info(void *object, void *data, size_t size)
@ -1264,7 +1264,7 @@ static int client_demarshal_info(void *object, void *data, size_t size)
return pw_proxy_notify(proxy, struct pw_client_proxy_events, info, 0, &info);
}
static int client_marshal_permissions(void *object, uint32_t index, uint32_t n_permissions,
static void client_marshal_permissions(void *object, uint32_t index, uint32_t n_permissions,
const struct pw_permission *permissions)
{
struct pw_resource *resource = object;
@ -1293,7 +1293,7 @@ static int client_marshal_permissions(void *object, uint32_t index, uint32_t n_p
spa_pod_builder_pop(b, &f[1]);
spa_pod_builder_pop(b, &f[0]);
return pw_protocol_native_end_resource(resource, b);
pw_protocol_native_end_resource(resource, b);
}
static int client_demarshal_permissions(void *object, void *data, size_t size)
@ -1471,7 +1471,7 @@ static int client_demarshal_update_permissions(void *object, void *data, size_t
n_permissions, permissions);
}
static int link_marshal_info(void *object, const struct pw_link_info *info)
static void link_marshal_info(void *object, const struct pw_link_info *info)
{
struct pw_resource *resource = object;
struct spa_pod_builder *b;
@ -1494,7 +1494,7 @@ static int link_marshal_info(void *object, const struct pw_link_info *info)
push_dict(b, info->props);
spa_pod_builder_pop(b, &f);
return pw_protocol_native_end_resource(resource, b);
pw_protocol_native_end_resource(resource, b);
}
static int link_demarshal_info(void *object, void *data, size_t size)
@ -1618,7 +1618,7 @@ static const struct pw_core_proxy_methods pw_protocol_native_core_method_marshal
PW_VERSION_CORE_PROXY_METHODS,
&core_method_marshal_hello,
&core_method_marshal_sync,
&core_method_marshal_done,
&core_method_marshal_pong,
&core_method_marshal_error,
&core_method_marshal_get_registry,
&core_method_marshal_create_object,
@ -1628,7 +1628,7 @@ static const struct pw_core_proxy_methods pw_protocol_native_core_method_marshal
static const struct pw_protocol_native_demarshal pw_protocol_native_core_method_demarshal[PW_CORE_PROXY_METHOD_NUM] = {
{ &core_method_demarshal_hello, 0, },
{ &core_method_demarshal_sync, 0, },
{ &core_method_demarshal_done, 0, },
{ &core_method_demarshal_pong, 0, },
{ &core_method_demarshal_error, 0, },
{ &core_method_demarshal_get_registry, 0, },
{ &core_method_demarshal_create_object, 0, },
@ -1639,7 +1639,7 @@ static const struct pw_core_proxy_events pw_protocol_native_core_event_marshal =
PW_VERSION_CORE_PROXY_EVENTS,
&core_event_marshal_info,
&core_event_marshal_done,
&core_event_marshal_sync,
&core_event_marshal_ping,
&core_event_marshal_error,
&core_event_marshal_remove_id,
};
@ -1647,7 +1647,7 @@ static const struct pw_core_proxy_events pw_protocol_native_core_event_marshal =
static const struct pw_protocol_native_demarshal pw_protocol_native_core_event_demarshal[PW_CORE_PROXY_EVENT_NUM] = {
{ &core_event_demarshal_info, 0, },
{ &core_event_demarshal_done, 0, },
{ &core_event_demarshal_sync, 0, },
{ &core_event_demarshal_ping, 0, },
{ &core_event_demarshal_error, 0, },
{ &core_event_demarshal_remove_id, 0, },
};

View file

@ -144,8 +144,9 @@ static int client_get_permissions(void *object, uint32_t index, uint32_t num)
else if ((size_t)index + (size_t)num >= len)
num = len - index;
return pw_client_resource_permissions(resource, index,
pw_client_resource_permissions(resource, index,
num, pw_array_get_unchecked(&impl->permissions, index, struct pw_permission));
return 0;
}
static int client_update_permissions(void *object,

View file

@ -167,18 +167,18 @@ static int core_sync(void *object, uint32_t id, int seq)
return 0;
}
static int core_done(void *object, uint32_t id, int seq)
static int core_pong(void *object, uint32_t id, int seq)
{
struct pw_resource *resource = object;
struct pw_client *client = resource->client;
struct pw_resource *r;
pw_log_debug("core %p: done %d for resource %d", resource->core, seq, id);
pw_log_debug("core %p: pong %d for resource %d", resource->core, seq, id);
if ((r = pw_client_find_resource(client, id)) == NULL)
return -EINVAL;
pw_resource_emit_done(r, seq);
pw_resource_emit_pong(r, seq);
return 0;
}
@ -246,7 +246,7 @@ static int core_get_registry(void *object, uint32_t version, uint32_t new_id)
no_mem:
pw_log_error("can't create registry resource");
pw_core_resource_error(client->core_resource, new_id,
client->seq, -ENOMEM, "no memory");
client->recv_seq, -ENOMEM, "no memory");
pw_map_insert_at(&client->objects, new_id, NULL);
pw_core_resource_remove_id(client->core_resource, new_id);
return -ENOMEM;
@ -341,7 +341,7 @@ static const struct pw_core_proxy_methods core_methods = {
PW_VERSION_CORE_PROXY_METHODS,
.hello = core_hello,
.sync = core_sync,
.done = core_done,
.pong = core_pong,
.error = core_error,
.get_registry = core_get_registry,
.create_object = core_create_object,

View file

@ -134,13 +134,12 @@ struct result_device_params_data {
struct spa_pod *param);
};
static int result_device_params(void *data, int seq, int res, const void *result)
static void result_device_params(void *data, int seq, int res, const void *result)
{
struct result_device_params_data *d = data;
const struct spa_result_device_params *r =
(const struct spa_result_device_params *)result;
d->callback(d->data, seq, r->id, r->index, r->next, r->param);
return 0;
}
SPA_EXPORT
@ -351,7 +350,7 @@ static int update_properties(struct pw_device *device, const struct spa_dict *di
return changed;
}
static int device_info(void *data, const struct spa_device_info *info)
static void device_info(void *data, const struct spa_device_info *info)
{
struct pw_device *device = data;
if (info->change_mask & SPA_DEVICE_CHANGE_MASK_PROPS) {
@ -364,8 +363,6 @@ static int device_info(void *data, const struct spa_device_info *info)
device->info.n_params * sizeof(struct spa_param_info));
}
emit_info_changed(device);
return 0;
}
static void device_add(struct pw_device *device, uint32_t id,
@ -441,7 +438,7 @@ static struct node_data *find_node(struct pw_device *device, uint32_t id)
return NULL;
}
static int device_object_info(void *data, uint32_t id,
static void device_object_info(void *data, uint32_t id,
const struct spa_device_object_info *info)
{
struct pw_device *device = data;
@ -465,7 +462,6 @@ static int device_object_info(void *data, uint32_t id,
else {
device_add(device, id, info);
}
return 0;
}
static const struct spa_device_events device_events = {

View file

@ -268,12 +268,12 @@ pw_global_bind(struct pw_global *global, struct pw_client *client, uint32_t perm
wrong_version:
res = -EPROTO;
pw_core_resource_errorf(client->core_resource, id, client->seq,
pw_core_resource_errorf(client->core_resource, id, client->recv_seq,
res, "id %d: interface version %d < %d",
id, global->version, version);
goto exit;
error:
pw_core_resource_errorf(client->core_resource, id, client->seq,
pw_core_resource_errorf(client->core_resource, id, client->recv_seq,
res, "can't bind global %u/%u: %d (%s)", id, version, res, spa_strerror(res));
exit:
pw_log_error("can't bind global %u/%u: %d (%s)", id, version, res, spa_strerror(res));

View file

@ -71,7 +71,7 @@ struct pw_link_proxy;
#define PW_CORE_PROXY_METHOD_HELLO 0
#define PW_CORE_PROXY_METHOD_SYNC 1
#define PW_CORE_PROXY_METHOD_DONE 2
#define PW_CORE_PROXY_METHOD_PONG 2
#define PW_CORE_PROXY_METHOD_ERROR 3
#define PW_CORE_PROXY_METHOD_GET_REGISTRY 4
#define PW_CORE_PROXY_METHOD_CREATE_OBJECT 5
@ -112,13 +112,13 @@ struct pw_core_proxy_methods {
*/
int (*sync) (void *object, uint32_t id, int seq);
/**
* Reply to a server sync event.
* Reply to a server ping event.
*
* Reply to the server sync event with the same seq.
* Reply to the server ping event with the same seq.
*
* \param seq the seq number received in the sync event
* \param seq the seq number received in the ping event
*/
int (*done) (void *object, uint32_t id, int seq);
int (*pong) (void *object, uint32_t id, int seq);
/**
* Fatal error event
*
@ -183,9 +183,9 @@ pw_core_proxy_sync(struct pw_core_proxy *core, uint32_t id, int seq)
}
static inline int
pw_core_proxy_done(struct pw_core_proxy *core, uint32_t id, int seq)
pw_core_proxy_pong(struct pw_core_proxy *core, uint32_t id, int seq)
{
return pw_proxy_do((struct pw_proxy*)core, struct pw_core_proxy_methods, done, id, seq);
return pw_proxy_do((struct pw_proxy*)core, struct pw_core_proxy_methods, pong, id, seq);
}
static inline int
@ -248,7 +248,7 @@ pw_core_proxy_destroy(struct pw_core_proxy *core, struct pw_proxy *proxy)
#define PW_CORE_PROXY_EVENT_INFO 0
#define PW_CORE_PROXY_EVENT_DONE 1
#define PW_CORE_PROXY_EVENT_SYNC 2
#define PW_CORE_PROXY_EVENT_PING 2
#define PW_CORE_PROXY_EVENT_ERROR 3
#define PW_CORE_PROXY_EVENT_REMOVE_ID 4
#define PW_CORE_PROXY_EVENT_NUM 5
@ -269,7 +269,7 @@ struct pw_core_proxy_events {
*
* \param info new core info
*/
int (*info) (void *object, const struct pw_core_info *info);
void (*info) (void *object, const struct pw_core_info *info);
/**
* Emit a done event
*
@ -278,14 +278,14 @@ struct pw_core_proxy_events {
*
* \param seq the seq number passed to the sync method call
*/
int (*done) (void *object, uint32_t id, int seq);
void (*done) (void *object, uint32_t id, int seq);
/** Emit a sync event
/** Emit a ping event
*
* The client should reply with a done reply with the same seq
* The client should reply with a pong reply with the same seq
* number.
*/
int (*sync) (void *object, uint32_t id, int seq);
void (*ping) (void *object, uint32_t id, int seq);
/**
* Fatal error event
@ -304,7 +304,7 @@ struct pw_core_proxy_events {
* \param res error code
* \param message error description
*/
int (*error) (void *object, uint32_t id, int seq, int res, const char *message);
void (*error) (void *object, uint32_t id, int seq, int res, const char *message);
/**
* Remove an object ID
*
@ -316,7 +316,7 @@ struct pw_core_proxy_events {
*
* \param id deleted object ID
*/
int (*remove_id) (void *object, uint32_t id);
void (*remove_id) (void *object, uint32_t id);
};
static inline void
@ -331,29 +331,28 @@ pw_core_proxy_add_listener(struct pw_core_proxy *core,
#define pw_core_resource_info(r,...) pw_resource_notify(r,struct pw_core_proxy_events,info,__VA_ARGS__)
#define pw_core_resource_done(r,...) pw_resource_notify(r,struct pw_core_proxy_events,done,__VA_ARGS__)
#define pw_core_resource_sync(r,...) pw_resource_notify(r,struct pw_core_proxy_events,sync,__VA_ARGS__)
#define pw_core_resource_ping(r,...) pw_resource_notify(r,struct pw_core_proxy_events,ping,__VA_ARGS__)
#define pw_core_resource_error(r,...) pw_resource_notify(r,struct pw_core_proxy_events,error,__VA_ARGS__)
#define pw_core_resource_remove_id(r,...) pw_resource_notify(r,struct pw_core_proxy_events,remove_id,__VA_ARGS__)
static inline int
static inline void
pw_core_resource_errorv(struct pw_resource *resource, uint32_t id, int seq,
int res, const char *message, va_list args)
{
char buffer[1024];
vsnprintf(buffer, sizeof(buffer), message, args);
buffer[1023] = '\0';
return pw_core_resource_error(resource, id, seq, res, buffer);
pw_core_resource_error(resource, id, seq, res, buffer);
}
static inline int
static inline void
pw_core_resource_errorf(struct pw_resource *resource, uint32_t id, int seq,
int res, const char *message, ...)
{
va_list args;
va_start(args, message);
res = pw_core_resource_errorv(resource, id, seq, res, message, args);
pw_core_resource_errorv(resource, id, seq, res, message, args);
va_end(args);
return res;
}
#define PW_VERSION_REGISTRY 0
@ -461,7 +460,7 @@ struct pw_registry_proxy_events {
* \param version the version of the interface
* \param props extra properties of the global
*/
int (*global) (void *object, uint32_t id, uint32_t parent_id,
void (*global) (void *object, uint32_t id, uint32_t parent_id,
uint32_t permissions, uint32_t type, uint32_t version,
const struct spa_dict *props);
/**
@ -473,7 +472,7 @@ struct pw_registry_proxy_events {
*
* \param id the id of the global that was removed
*/
int (*global_remove) (void *object, uint32_t id);
void (*global_remove) (void *object, uint32_t id);
};
static inline void
@ -511,7 +510,7 @@ struct pw_module_proxy_events {
*
* \param info info about the module
*/
int (*info) (void *object, const struct pw_module_info *info);
void (*info) (void *object, const struct pw_module_info *info);
};
static inline void
@ -590,7 +589,7 @@ struct pw_device_proxy_events {
*
* \param info info about the device
*/
int (*info) (void *object, const struct pw_device_info *info);
void (*info) (void *object, const struct pw_device_info *info);
/**
* Notify a device param
*
@ -602,7 +601,7 @@ struct pw_device_proxy_events {
* \param next the param index of the next param
* \param param the parameter
*/
int (*param) (void *object, int seq,
void (*param) (void *object, int seq,
uint32_t id, uint32_t index, uint32_t next,
const struct spa_pod *param);
};
@ -701,7 +700,7 @@ struct pw_node_proxy_events {
*
* \param info info about the node
*/
int (*info) (void *object, const struct pw_node_info *info);
void (*info) (void *object, const struct pw_node_info *info);
/**
* Notify a node param
*
@ -713,7 +712,7 @@ struct pw_node_proxy_events {
* \param next the param index of the next param
* \param param the parameter
*/
int (*param) (void *object, int seq,
void (*param) (void *object, int seq,
uint32_t id, uint32_t index, uint32_t next,
const struct spa_pod *param);
};
@ -779,7 +778,7 @@ struct pw_port_proxy_events {
*
* \param info info about the port
*/
int (*info) (void *object, const struct pw_port_info *info);
void (*info) (void *object, const struct pw_port_info *info);
/**
* Notify a port param
*
@ -791,7 +790,7 @@ struct pw_port_proxy_events {
* \param next the param index of the next param
* \param param the parameter
*/
int (*param) (void *object, int seq,
void (*param) (void *object, int seq,
uint32_t id, uint32_t index, uint32_t next,
const struct spa_pod *param);
};
@ -830,7 +829,7 @@ struct pw_factory_proxy_events {
*
* \param info info about the factory
*/
int (*info) (void *object, const struct pw_factory_info *info);
void (*info) (void *object, const struct pw_factory_info *info);
};
/** Factory */
@ -939,7 +938,7 @@ struct pw_client_proxy_events {
*
* \param info info about the client
*/
int (*info) (void *object, const struct pw_client_info *info);
void (*info) (void *object, const struct pw_client_info *info);
/**
* Notify a client permission
*
@ -950,7 +949,7 @@ struct pw_client_proxy_events {
* \param n_permissions the number of permissions
* \param permissions the permissions
*/
int (*permissions) (void *object,
void (*permissions) (void *object,
uint32_t index,
uint32_t n_permissions,
const struct pw_permission *permissions);
@ -991,7 +990,7 @@ struct pw_link_proxy_events {
*
* \param info info about the link
*/
int (*info) (void *object, const struct pw_link_info *info);
void (*info) (void *object, const struct pw_link_info *info);
};
/** Link */

View file

@ -793,7 +793,7 @@ int pw_node_update_properties(struct pw_node *node, const struct spa_dict *dict)
return changed;
}
static int node_info(void *data, const struct spa_node_info *info)
static void node_info(void *data, const struct spa_node_info *info)
{
struct pw_node *node = data;
@ -814,11 +814,9 @@ static int node_info(void *data, const struct spa_node_info *info)
node->info.n_params * sizeof(struct spa_param_info));
}
emit_info_changed(node);
return 0;
}
static int node_port_info(void *data, enum spa_direction direction, uint32_t port_id,
static void node_port_info(void *data, enum spa_direction direction, uint32_t port_id,
const struct spa_port_info *info)
{
struct pw_node *node = data;
@ -852,10 +850,9 @@ static int node_port_info(void *data, enum spa_direction direction, uint32_t por
}
}
}
return 0;
}
static int node_result(void *data, int seq, int res, const void *result)
static void node_result(void *data, int seq, int res, const void *result)
{
struct pw_node *node = data;
struct impl *impl = SPA_CONTAINER_OF(node, struct impl, this);
@ -867,11 +864,9 @@ static int node_result(void *data, int seq, int res, const void *result)
pw_work_queue_complete(impl->work, &impl->this, SPA_RESULT_ASYNC_SEQ(seq), res);
pw_node_emit_result(node, seq, res, result);
return 0;
}
static int node_event(void *data, struct spa_event *event)
static void node_event(void *data, struct spa_event *event)
{
struct pw_node *node = data;
struct impl *impl = SPA_CONTAINER_OF(node, struct impl, this);
@ -887,10 +882,16 @@ static int node_event(void *data, struct spa_event *event)
break;
}
pw_node_emit_event(node, event);
return 0;
}
static const struct spa_node_events node_events = {
SPA_VERSION_NODE_EVENTS,
.info = node_info,
.port_info = node_port_info,
.result = node_result,
.event = node_event,
};
static int node_ready(void *data, int status)
{
struct pw_node *node = data;
@ -926,14 +927,6 @@ static int node_reuse_buffer(void *data, uint32_t port_id, uint32_t buffer_id)
return 0;
}
static const struct spa_node_events node_events = {
SPA_VERSION_NODE_EVENTS,
.info = node_info,
.port_info = node_port_info,
.result = node_result,
.event = node_event,
};
static const struct spa_node_callbacks node_callbacks = {
SPA_VERSION_NODE_CALLBACKS,
.ready = node_ready,
@ -1090,12 +1083,11 @@ struct result_node_params_data {
struct spa_pod *param);
};
static int result_node_params(void *data, int seq, int res, const void *result)
static void result_node_params(void *data, int seq, int res, const void *result)
{
struct result_node_params_data *d = data;
const struct spa_result_node_params *r = result;
d->callback(d->data, seq, r->id, r->index, r->next, r->param);
return 0;
}
SPA_EXPORT

View file

@ -798,12 +798,11 @@ struct result_port_params_data {
struct spa_pod *param);
};
static int result_port_params(void *data, int seq, int res, const void *result)
static void result_port_params(void *data, int seq, int res, const void *result)
{
struct result_port_params_data *d = data;
const struct spa_result_node_params *r = result;
d->callback(d->data, seq, r->id, r->index, r->next, r->param);
return 0;
}
int pw_port_for_each_param(struct pw_port *port,

View file

@ -116,7 +116,8 @@ struct pw_client {
struct pw_protocol *protocol; /**< protocol in use */
struct spa_list protocol_link; /**< link in the protocol client_list */
int seq; /**< last received sequence number */
int recv_seq; /**< last received sequence number */
int send_seq; /**< last sender sequence number */
void *user_data; /**< extra user data */
@ -522,7 +523,7 @@ struct pw_link {
#define pw_resource_emit(o,m,v,...) spa_hook_list_call(&o->listener_list, struct pw_resource_events, m, v, ##__VA_ARGS__)
#define pw_resource_emit_destroy(o) pw_resource_emit(o, destroy, 0)
#define pw_resource_emit_done(o,s) pw_resource_emit(o, done, 0, s)
#define pw_resource_emit_pong(o,s) pw_resource_emit(o, pong, 0, s)
#define pw_resource_emit_error(o,s,r,m) pw_resource_emit(o, error, 0, s, r, m)
struct pw_resource {
@ -585,7 +586,8 @@ struct pw_remote {
struct spa_list remote_node_list; /**< list of \ref pw_remote_node objects */
struct pw_protocol_client *conn; /**< the protocol client connection */
int seq; /**< last received sequence number */
int recv_seq; /**< last received sequence number */
int send_seq; /**< last protocol result code */
enum pw_remote_state state;
char *error;

View file

@ -150,8 +150,10 @@ SPA_EXPORT
int pw_proxy_sync(struct pw_proxy *proxy, int seq)
{
int res = -EIO;
if (proxy->remote->core_proxy != NULL) {
res = pw_core_proxy_sync(proxy->remote->core_proxy, proxy->id, seq);
struct pw_remote *remote = proxy->remote;
if (remote->core_proxy != NULL) {
res = pw_core_proxy_sync(remote->core_proxy, proxy->id, seq);
pw_log_debug("proxy %p: %u seq:%d sync %u", proxy, proxy->id, seq, res);
}
return res;
@ -162,10 +164,12 @@ int pw_proxy_error(struct pw_proxy *proxy, int res, const char *error, ...)
{
va_list ap;
int r = -EIO;
struct pw_remote *remote = proxy->remote;
va_start(ap, error);
if (proxy->remote->core_proxy != NULL)
r = pw_core_proxy_errorv(proxy->remote->core_proxy, proxy->id,
proxy->remote->seq, res, error, ap);
if (remote->core_proxy != NULL)
r = pw_core_proxy_errorv(remote->core_proxy, proxy->id,
remote->recv_seq, res, error, ap);
va_end(ap);
return r;
}

View file

@ -98,14 +98,14 @@ pw_remote_update_state(struct pw_remote *remote, enum pw_remote_state state, con
return 0;
}
static int core_event_sync(void *data, uint32_t id, int seq)
static int core_event_ping(void *data, uint32_t id, int seq)
{
struct pw_remote *this = data;
pw_log_debug("remote %p: object %u sync %u", this, id, seq);
return pw_core_proxy_done(this->core_proxy, id, seq);
pw_log_debug("remote %p: object %u ping %u", this, id, seq);
return pw_core_proxy_pong(this->core_proxy, id, seq);
}
static int core_event_done(void *data, uint32_t id, int seq)
static void core_event_done(void *data, uint32_t id, int seq)
{
struct pw_remote *this = data;
struct pw_proxy *proxy;
@ -115,10 +115,9 @@ static int core_event_done(void *data, uint32_t id, int seq)
proxy = pw_map_lookup(&this->objects, id);
if (proxy)
pw_proxy_emit_done(proxy, seq);
return 0;
}
static int core_event_error(void *data, uint32_t id, int seq, int res, const char *message)
static void core_event_error(void *data, uint32_t id, int seq, int res, const char *message)
{
struct pw_remote *this = data;
struct pw_proxy *proxy;
@ -129,10 +128,9 @@ static int core_event_error(void *data, uint32_t id, int seq, int res, const cha
proxy = pw_map_lookup(&this->objects, id);
if (proxy)
pw_proxy_emit_error(proxy, seq, res, message);
return 0;
}
static int core_event_remove_id(void *data, uint32_t id)
static void core_event_remove_id(void *data, uint32_t id)
{
struct pw_remote *this = data;
struct pw_proxy *proxy;
@ -143,13 +141,12 @@ static int core_event_remove_id(void *data, uint32_t id)
pw_proxy_destroy(proxy);
pw_map_remove(&this->objects, id);
return 0;
}
static const struct pw_core_proxy_events core_proxy_events = {
PW_VERSION_CORE_PROXY_EVENTS,
.error = core_event_error,
.sync = core_event_sync,
.ping = core_event_ping,
.done = core_event_done,
.remove_id = core_event_remove_id,
};

View file

@ -170,29 +170,30 @@ const struct pw_protocol_marshal *pw_resource_get_marshal(struct pw_resource *re
}
SPA_EXPORT
int pw_resource_sync(struct pw_resource *resource, int seq)
int pw_resource_ping(struct pw_resource *resource, int seq)
{
int res = -EIO;
if (resource->client->core_resource != NULL) {
res = pw_core_resource_sync(resource->client->core_resource, resource->id, seq);
pw_log_debug("resource %p: %u seq:%d sync %d", resource, resource->id, seq, res);
struct pw_client *client = resource->client;
if (client->core_resource != NULL) {
pw_core_resource_ping(client->core_resource, resource->id, seq);
res = client->send_seq;
pw_log_debug("resource %p: %u seq:%d ping %d", resource, resource->id, seq, res);
}
return res;
}
SPA_EXPORT
int pw_resource_error(struct pw_resource *resource, int res, const char *error, ...)
void pw_resource_error(struct pw_resource *resource, int res, const char *error, ...)
{
va_list ap;
int r = -EIO;
struct pw_client *client = resource->client;
va_start(ap, error);
if (client->core_resource != NULL)
r = pw_core_resource_errorv(client->core_resource,
resource->id, client->seq, res, error, ap);
pw_core_resource_errorv(client->core_resource,
resource->id, client->recv_seq, res, error, ap);
va_end(ap);
return r;
}
SPA_EXPORT

View file

@ -68,8 +68,8 @@ struct pw_resource_events {
/** The resource is destroyed */
void (*destroy) (void *data);
/** a reply to a sync event completed */
void (*done) (void *data, int seq);
/** a reply to a ping event completed */
void (*pong) (void *data, int seq);
/** an error occured on the resource */
void (*error) (void *data, int seq, int res, const char *message);
@ -122,12 +122,12 @@ void pw_resource_add_override(struct pw_resource *resource,
const void *implementation,
void *data);
/** Generate an sync method for a resource. This will generate a done event
/** Generate an ping event for a resource. This will generate a pong event
* with the same \a sequence number in the return value. */
int pw_resource_sync(struct pw_resource *resource, int seq);
int pw_resource_ping(struct pw_resource *resource, int seq);
/** Generate an error for a resource */
int pw_resource_error(struct pw_resource *resource, int res, const char *error, ...);
void pw_resource_error(struct pw_resource *resource, int res, const char *error, ...);
/** Get the implementation list of a resource */
struct spa_hook_list *pw_resource_get_implementation(struct pw_resource *resource);

View file

@ -37,12 +37,12 @@ static void test_core_abi(void)
struct pw_core_proxy_events e;
struct {
uint32_t version;
int (*hello) (void *object, uint32_t version);
int (*sync) (void *object, uint32_t id, int seq);
int (*done) (void *object, uint32_t id, int seq);
int (*error) (void *object, uint32_t id, int seq, int res, const char *error);
int (*get_registry) (void *object, uint32_t version, uint32_t new_id);
int (*create_object) (void *object,
int (*hello) (void *object, uint32_t version);
int (*sync) (void *object, uint32_t id, int seq);
int (*pong) (void *object, uint32_t id, int seq);
int (*error) (void *object, uint32_t id, int seq, int res, const char *error);
int (*get_registry) (void *object, uint32_t version, uint32_t new_id);
int (*create_object) (void *object,
const char *factory_name,
uint32_t type,
uint32_t version,
@ -52,18 +52,18 @@ static void test_core_abi(void)
} methods = { PW_VERSION_CORE_PROXY_METHODS, };
struct {
uint32_t version;
int (*info) (void *object, const struct pw_core_info *info);
int (*done) (void *object, uint32_t id, int seq);
int (*sync) (void *object, uint32_t id, int seq);
int (*error) (void *object, uint32_t id, int seq, int res, const char *error);
int (*remove_id) (void *object, uint32_t id);
void (*info) (void *object, const struct pw_core_info *info);
void (*done) (void *object, uint32_t id, int seq);
void (*ping) (void *object, uint32_t id, int seq);
void (*error) (void *object, uint32_t id, int seq, int res, const char *error);
void (*remove_id) (void *object, uint32_t id);
} events = { PW_VERSION_CORE_PROXY_EVENTS, };
TEST_FUNC(m, methods, version);
TEST_FUNC(m, methods, hello);
TEST_FUNC(m, methods, sync);
TEST_FUNC(m, methods, done);
TEST_FUNC(e, methods, error);
TEST_FUNC(m, methods, pong);
TEST_FUNC(m, methods, error);
TEST_FUNC(m, methods, get_registry);
TEST_FUNC(m, methods, create_object);
TEST_FUNC(m, methods, destroy);
@ -73,7 +73,7 @@ static void test_core_abi(void)
TEST_FUNC(e, events, version);
TEST_FUNC(e, events, info);
TEST_FUNC(e, events, done);
TEST_FUNC(e, events, sync);
TEST_FUNC(e, events, ping);
TEST_FUNC(e, events, error);
TEST_FUNC(e, events, remove_id);
spa_assert(PW_VERSION_CORE_PROXY_EVENTS == 0);
@ -91,10 +91,10 @@ static void test_registry_abi(void)
} methods = { PW_VERSION_REGISTRY_PROXY_METHODS, };
struct {
uint32_t version;
int (*global) (void *object, uint32_t id, uint32_t parent_id,
void (*global) (void *object, uint32_t id, uint32_t parent_id,
uint32_t permissions, uint32_t type, uint32_t version,
const struct spa_dict *props);
int (*global_remove) (void *object, uint32_t id);
void (*global_remove) (void *object, uint32_t id);
} events = { PW_VERSION_REGISTRY_PROXY_EVENTS, };
TEST_FUNC(m, methods, version);
@ -119,7 +119,7 @@ static void test_module_abi(void)
} methods = { PW_VERSION_MODULE_PROXY_METHODS, };
struct {
uint32_t version;
int (*info) (void *object, const struct pw_module_info *info);
void (*info) (void *object, const struct pw_module_info *info);
} events = { PW_VERSION_MODULE_PROXY_EVENTS, };
TEST_FUNC(m, methods, version);
@ -146,8 +146,8 @@ static void test_device_abi(void)
} methods = { PW_VERSION_DEVICE_PROXY_METHODS, };
struct {
uint32_t version;
int (*info) (void *object, const struct pw_device_info *info);
int (*param) (void *object, int seq,
void (*info) (void *object, const struct pw_device_info *info);
void (*param) (void *object, int seq,
uint32_t id, uint32_t index, uint32_t next,
const struct spa_pod *param);
} events = { PW_VERSION_DEVICE_PROXY_EVENTS, };
@ -179,8 +179,8 @@ static void test_node_abi(void)
} methods = { PW_VERSION_NODE_PROXY_METHODS, };
struct {
uint32_t version;
int (*info) (void *object, const struct pw_node_info *info);
int (*param) (void *object, int seq,
void (*info) (void *object, const struct pw_node_info *info);
void (*param) (void *object, int seq,
uint32_t id, uint32_t index, uint32_t next,
const struct spa_pod *param);
} events = { PW_VERSION_NODE_PROXY_EVENTS, };
@ -210,8 +210,8 @@ static void test_port_abi(void)
} methods = { PW_VERSION_PORT_PROXY_METHODS, };
struct {
uint32_t version;
int (*info) (void *object, const struct pw_port_info *info);
int (*param) (void *object, int seq,
void (*info) (void *object, const struct pw_port_info *info);
void (*param) (void *object, int seq,
uint32_t id, uint32_t index, uint32_t next,
const struct spa_pod *param);
} events = { PW_VERSION_PORT_PROXY_EVENTS, };
@ -237,7 +237,7 @@ static void test_factory_abi(void)
} methods = { PW_VERSION_FACTORY_PROXY_METHODS, };
struct {
uint32_t version;
int (*info) (void *object, const struct pw_factory_info *info);
void (*info) (void *object, const struct pw_factory_info *info);
} events = { PW_VERSION_FACTORY_PROXY_EVENTS, };
TEST_FUNC(m, methods, version);
@ -264,8 +264,8 @@ static void test_client_abi(void)
} methods = { PW_VERSION_CLIENT_PROXY_METHODS, };
struct {
uint32_t version;
int (*info) (void *object, const struct pw_client_info *info);
int (*permissions) (void *object, uint32_t index,
void (*info) (void *object, const struct pw_client_info *info);
void (*permissions) (void *object, uint32_t index,
uint32_t n_permissions, const struct pw_permission *permissions);
} events = { PW_VERSION_CLIENT_PROXY_EVENTS, };
@ -292,7 +292,7 @@ static void test_link_abi(void)
} methods = { PW_VERSION_LINK_PROXY_METHODS, };
struct {
uint32_t version;
int (*info) (void *object, const struct pw_link_info *info);
void (*info) (void *object, const struct pw_link_info *info);
} events = { PW_VERSION_LINK_PROXY_EVENTS, };
TEST_FUNC(m, methods, version);

View file

@ -260,13 +260,12 @@ static bool do_load_module(struct data *data, const char *cmd, char *args, char
return true;
}
static int on_core_info(void *_data, const struct pw_core_info *info)
static void on_core_info(void *_data, const struct pw_core_info *info)
{
struct remote_data *rd = _data;
free(rd->name);
rd->name = strdup(info->name);
fprintf(stdout, "remote %d is named '%s'\n", rd->id, rd->name);
return 0;
}
static void show_prompt(struct remote_data *rd)
@ -275,14 +274,12 @@ static void show_prompt(struct remote_data *rd)
fflush(stdout);
}
static int on_core_done(void *_data, uint32_t id, int seq)
static void on_core_done(void *_data, uint32_t id, int seq)
{
struct remote_data *rd = _data;
if (seq == rd->prompt_pending)
show_prompt(rd);
return 0;
}
static int print_global(void *obj, void *data)
@ -301,7 +298,7 @@ static int print_global(void *obj, void *data)
return 0;
}
static int registry_event_global(void *data, uint32_t id, uint32_t parent_id,
static void registry_event_global(void *data, uint32_t id, uint32_t parent_id,
uint32_t permissions, uint32_t type, uint32_t version,
const struct spa_dict *props)
{
@ -325,7 +322,6 @@ static int registry_event_global(void *data, uint32_t id, uint32_t parent_id,
while (id > size)
pw_map_insert_at(&rd->globals, size++, NULL);
pw_map_insert_at(&rd->globals, id, global);
return 0;
}
static int destroy_global(void *obj, void *data)
@ -342,7 +338,7 @@ static int destroy_global(void *obj, void *data)
return 0;
}
static int registry_event_global_remove(void *data, uint32_t id)
static void registry_event_global_remove(void *data, uint32_t id)
{
struct remote_data *rd = data;
struct global *global;
@ -350,13 +346,12 @@ static int registry_event_global_remove(void *data, uint32_t id)
global = pw_map_lookup(&rd->globals, id);
if (global == NULL) {
fprintf(stdout, "remote %d removed unknown global %d\n", rd->id, id);
return -EINVAL;
return;
}
fprintf(stdout, "remote %d removed global: ", rd->id);
print_global(global, NULL);
destroy_global(global, rd);
return 0;
}
static const struct pw_registry_proxy_events registry_events = {
@ -646,7 +641,7 @@ static void info_device(struct proxy_data *pd)
info->change_mask = 0;
}
static int core_event_info(void *object, const struct pw_core_info *info)
static void core_event_info(void *object, const struct pw_core_info *info)
{
struct proxy_data *pd = object;
struct remote_data *rd = pd->rd;
@ -659,7 +654,6 @@ static int core_event_info(void *object, const struct pw_core_info *info)
info_core(pd);
pd->global->info_pending = false;
}
return 0;
}
static const struct pw_core_proxy_events core_events = {
@ -668,7 +662,7 @@ static const struct pw_core_proxy_events core_events = {
};
static int module_event_info(void *object, const struct pw_module_info *info)
static void module_event_info(void *object, const struct pw_module_info *info)
{
struct proxy_data *pd = object;
struct remote_data *rd = pd->rd;
@ -681,7 +675,6 @@ static int module_event_info(void *object, const struct pw_module_info *info)
info_module(pd);
pd->global->info_pending = false;
}
return 0;
}
static const struct pw_module_proxy_events module_events = {
@ -689,7 +682,7 @@ static const struct pw_module_proxy_events module_events = {
.info = module_event_info
};
static int node_event_info(void *object, const struct pw_node_info *info)
static void node_event_info(void *object, const struct pw_node_info *info)
{
struct proxy_data *pd = object;
struct remote_data *rd = pd->rd;
@ -702,10 +695,9 @@ static int node_event_info(void *object, const struct pw_node_info *info)
info_node(pd);
pd->global->info_pending = false;
}
return 0;
}
static int event_param(void *object, int seq, uint32_t id,
static void event_param(void *object, int seq, uint32_t id,
uint32_t index, uint32_t next, const struct spa_pod *param)
{
struct proxy_data *data = object;
@ -718,7 +710,6 @@ static int event_param(void *object, int seq, uint32_t id,
spa_debug_format(2, NULL, param);
else
spa_debug_pod(2, NULL, param);
return 0;
}
static const struct pw_node_proxy_events node_events = {
@ -728,7 +719,7 @@ static const struct pw_node_proxy_events node_events = {
};
static int port_event_info(void *object, const struct pw_port_info *info)
static void port_event_info(void *object, const struct pw_port_info *info)
{
struct proxy_data *pd = object;
struct remote_data *rd = pd->rd;
@ -741,7 +732,6 @@ static int port_event_info(void *object, const struct pw_port_info *info)
info_port(pd);
pd->global->info_pending = false;
}
return 0;
}
static const struct pw_port_proxy_events port_events = {
@ -750,7 +740,7 @@ static const struct pw_port_proxy_events port_events = {
.param = event_param
};
static int factory_event_info(void *object, const struct pw_factory_info *info)
static void factory_event_info(void *object, const struct pw_factory_info *info)
{
struct proxy_data *pd = object;
struct remote_data *rd = pd->rd;
@ -763,7 +753,6 @@ static int factory_event_info(void *object, const struct pw_factory_info *info)
info_factory(pd);
pd->global->info_pending = false;
}
return 0;
}
static const struct pw_factory_proxy_events factory_events = {
@ -771,7 +760,7 @@ static const struct pw_factory_proxy_events factory_events = {
.info = factory_event_info
};
static int client_event_info(void *object, const struct pw_client_info *info)
static void client_event_info(void *object, const struct pw_client_info *info)
{
struct proxy_data *pd = object;
struct remote_data *rd = pd->rd;
@ -784,10 +773,9 @@ static int client_event_info(void *object, const struct pw_client_info *info)
info_client(pd);
pd->global->info_pending = false;
}
return 0;
}
static int client_event_permissions(void *object, uint32_t index,
static void client_event_permissions(void *object, uint32_t index,
uint32_t n_permissions, const struct pw_permission *permissions)
{
struct proxy_data *data = object;
@ -804,7 +792,6 @@ static int client_event_permissions(void *object, uint32_t index,
fprintf(stdout, " %u:", permissions[i].id);
fprintf(stdout, " %08x\n", permissions[i].permissions);
}
return 0;
}
static const struct pw_client_proxy_events client_events = {
@ -813,7 +800,7 @@ static const struct pw_client_proxy_events client_events = {
.permissions = client_event_permissions
};
static int link_event_info(void *object, const struct pw_link_info *info)
static void link_event_info(void *object, const struct pw_link_info *info)
{
struct proxy_data *pd = object;
struct remote_data *rd = pd->rd;
@ -826,7 +813,6 @@ static int link_event_info(void *object, const struct pw_link_info *info)
info_link(pd);
pd->global->info_pending = false;
}
return 0;
}
static const struct pw_link_proxy_events link_events = {
@ -835,7 +821,7 @@ static const struct pw_link_proxy_events link_events = {
};
static int device_event_info(void *object, const struct pw_device_info *info)
static void device_event_info(void *object, const struct pw_device_info *info)
{
struct proxy_data *pd = object;
struct remote_data *rd = pd->rd;
@ -848,7 +834,6 @@ static int device_event_info(void *object, const struct pw_device_info *info)
info_device(pd);
pd->global->info_pending = false;
}
return 0;
}
static const struct pw_device_proxy_events device_events = {

View file

@ -98,7 +98,7 @@ static void remove_pending(struct proxy_data *pd)
}
}
static int on_core_done(void *data, uint32_t id, int seq)
static void on_core_done(void *data, uint32_t id, int seq)
{
struct data *d = data;
struct proxy_data *pd, *t;
@ -109,7 +109,6 @@ static int on_core_done(void *data, uint32_t id, int seq)
pd->print_func(pd);
}
}
return 0;
}
static void clear_params(struct proxy_data *data)
@ -147,11 +146,14 @@ static int add_param(struct proxy_data *data, uint32_t id, const struct spa_pod
return 0;
}
static int event_param(void *object, int seq, uint32_t id,
static void event_param(void *object, int seq, uint32_t id,
uint32_t index, uint32_t next, const struct spa_pod *param)
{
struct proxy_data *data = object;
return add_param(data, id, param);
int res;
if ((res = add_param(data, id, param)) < 0)
pw_log_error("can't add param %d: %s", res, spa_strerror(res));
}
static void print_params(struct proxy_data *data, char mark)
@ -187,7 +189,7 @@ static void print_properties(const struct spa_dict *props, char mark)
#define MARK_CHANGE(f) ((print_mark && ((info)->change_mask & (1 << (f)))) ? '*' : ' ')
static int on_core_info(void *data, const struct pw_core_info *info)
static void on_core_info(void *data, const struct pw_core_info *info)
{
bool print_all = true, print_mark = false;
@ -200,10 +202,9 @@ static int on_core_info(void *data, const struct pw_core_info *info)
printf("%c\tname: \"%s\"\n", MARK_CHANGE(3), info->name);
print_properties(info->props, MARK_CHANGE(4));
}
return 0;
}
static int module_event_info(void *object, const struct pw_module_info *info)
static void module_event_info(void *object, const struct pw_module_info *info)
{
struct proxy_data *data = object;
bool print_all, print_mark;
@ -233,7 +234,6 @@ static int module_event_info(void *object, const struct pw_module_info *info)
printf("%c\targs: \"%s\"\n", MARK_CHANGE(2), info->args);
print_properties(info->props, MARK_CHANGE(3));
}
return 0;
}
static const struct pw_module_proxy_events module_events = {
@ -282,7 +282,7 @@ static void print_node(struct proxy_data *data)
}
}
static int node_event_info(void *object, const struct pw_node_info *info)
static void node_event_info(void *object, const struct pw_node_info *info)
{
struct proxy_data *data = object;
struct pw_node_info *old = data->info;
@ -304,7 +304,6 @@ static int node_event_info(void *object, const struct pw_node_info *info)
if (data->pending_seq == 0)
data->print_func(data);
return 0;
}
static const struct pw_node_proxy_events node_events = {
@ -343,7 +342,7 @@ static void print_port(struct proxy_data *data)
}
}
static int port_event_info(void *object, const struct pw_port_info *info)
static void port_event_info(void *object, const struct pw_port_info *info)
{
struct proxy_data *data = object;
@ -366,7 +365,6 @@ static int port_event_info(void *object, const struct pw_port_info *info)
if (data->pending_seq == 0)
data->print_func(data);
return 0;
}
static const struct pw_port_proxy_events port_events = {
@ -375,7 +373,7 @@ static const struct pw_port_proxy_events port_events = {
.param = event_param
};
static int factory_event_info(void *object, const struct pw_factory_info *info)
static void factory_event_info(void *object, const struct pw_factory_info *info)
{
struct proxy_data *data = object;
bool print_all, print_mark;
@ -404,7 +402,6 @@ static int factory_event_info(void *object, const struct pw_factory_info *info)
if (print_all) {
print_properties(info->props, MARK_CHANGE(0));
}
return 0;
}
static const struct pw_factory_proxy_events factory_events = {
@ -412,7 +409,7 @@ static const struct pw_factory_proxy_events factory_events = {
.info = factory_event_info
};
static int client_event_info(void *object, const struct pw_client_info *info)
static void client_event_info(void *object, const struct pw_client_info *info)
{
struct proxy_data *data = object;
bool print_all, print_mark;
@ -439,7 +436,6 @@ static int client_event_info(void *object, const struct pw_client_info *info)
if (print_all) {
print_properties(info->props, MARK_CHANGE(0));
}
return 0;
}
static const struct pw_client_proxy_events client_events = {
@ -447,7 +443,7 @@ static const struct pw_client_proxy_events client_events = {
.info = client_event_info
};
static int link_event_info(void *object, const struct pw_link_info *info)
static void link_event_info(void *object, const struct pw_link_info *info)
{
struct proxy_data *data = object;
bool print_all, print_mark;
@ -488,7 +484,6 @@ static int link_event_info(void *object, const struct pw_link_info *info)
printf("\t\tnone\n");
print_properties(info->props, MARK_CHANGE(4));
}
return 0;
}
static const struct pw_link_proxy_events link_events = {
@ -526,7 +521,7 @@ static void print_device(struct proxy_data *data)
}
static int device_event_info(void *object, const struct pw_device_info *info)
static void device_event_info(void *object, const struct pw_device_info *info)
{
struct proxy_data *data = object;
struct pw_device_info *old = data->info;
@ -549,8 +544,6 @@ static int device_event_info(void *object, const struct pw_device_info *info)
if (data->pending_seq == 0)
data->print_func(data);
return 0;
}
static const struct pw_device_proxy_events device_events = {
@ -580,7 +573,7 @@ static const struct pw_proxy_events proxy_events = {
.destroy = destroy_proxy,
};
static int registry_event_global(void *data, uint32_t id, uint32_t parent_id,
static void registry_event_global(void *data, uint32_t id, uint32_t parent_id,
uint32_t permissions, uint32_t type, uint32_t version,
const struct spa_dict *props)
{
@ -640,7 +633,7 @@ static int registry_event_global(void *data, uint32_t id, uint32_t parent_id,
permissions & PW_PERM_X ? 'x' : '-');
printf("\ttype: %s (version %d)\n", spa_debug_type_find_name(pw_type_info(), type), version);
print_properties(props, ' ');
return 0;
return;
}
proxy = pw_registry_proxy_bind(d->registry_proxy, id, type,
@ -664,18 +657,17 @@ static int registry_event_global(void *data, uint32_t id, uint32_t parent_id,
spa_list_init(&pd->param_list);
pw_proxy_add_proxy_listener(proxy, &pd->proxy_proxy_listener, events, pd);
pw_proxy_add_listener(proxy, &pd->proxy_listener, &proxy_events, pd);
return 0;
return;
no_mem:
printf("failed to create proxy");
return -ENOMEM;
return;
}
static int registry_event_global_remove(void *object, uint32_t id)
static void registry_event_global_remove(void *object, uint32_t id)
{
printf("removed:\n");
printf("\tid: %u\n", id);
return 0;
}
static const struct pw_registry_proxy_events registry_events = {