mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-06 13:30:01 -05:00
hooks: use hook to implement the callbacks
This way we get the version check implemented and save some code.
This commit is contained in:
parent
a78617c6a8
commit
6ee192dff5
26 changed files with 121 additions and 111 deletions
|
|
@ -544,8 +544,7 @@ convert_1 (ConvertData *d)
|
|||
if (!(d->type = find_media_types (gst_structure_get_name (d->cs))))
|
||||
return NULL;
|
||||
|
||||
d->b.callbacks = &builder_callbacks;
|
||||
d->b.callbacks_data = &d->b;
|
||||
spa_pod_builder_set_callbacks(&d->b, &builder_callbacks, &d->b);
|
||||
|
||||
spa_pod_builder_push_object (&d->b, &f, SPA_TYPE_OBJECT_Format, d->id);
|
||||
|
||||
|
|
|
|||
|
|
@ -128,8 +128,7 @@ struct node {
|
|||
struct spa_loop *data_loop;
|
||||
|
||||
struct spa_hook_list hooks;
|
||||
const struct spa_node_callbacks *callbacks;
|
||||
void *callbacks_data;
|
||||
struct spa_hook callbacks;
|
||||
struct io ios[MAX_IO];
|
||||
|
||||
struct pw_resource *resource;
|
||||
|
|
@ -521,8 +520,7 @@ impl_node_set_callbacks(struct spa_node *node,
|
|||
spa_return_val_if_fail(node != NULL, -EINVAL);
|
||||
|
||||
this = SPA_CONTAINER_OF(node, struct node, node);
|
||||
this->callbacks = callbacks;
|
||||
this->callbacks_data = data;
|
||||
this->callbacks = SPA_HOOK_INIT(callbacks, data);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1115,8 +1113,7 @@ static void node_on_data_fd_events(struct spa_source *source)
|
|||
spa_log_warn(this->log, "node %p: read %"PRIu64" failed %m", this, cmd);
|
||||
|
||||
spa_log_trace_fp(this->log, "node %p: got ready", this);
|
||||
if (this->callbacks && this->callbacks->ready)
|
||||
this->callbacks->ready(this->callbacks_data, SPA_STATUS_HAVE_BUFFER);
|
||||
spa_node_call_ready(&this->callbacks, SPA_STATUS_HAVE_BUFFER);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -72,8 +72,7 @@ struct node {
|
|||
struct spa_param_info params[5];
|
||||
|
||||
struct spa_hook_list hooks;
|
||||
const struct spa_node_callbacks *callbacks;
|
||||
void *callbacks_data;
|
||||
struct spa_hook callbacks;
|
||||
};
|
||||
|
||||
struct impl {
|
||||
|
|
@ -378,8 +377,7 @@ impl_node_set_callbacks(struct spa_node *node,
|
|||
|
||||
this = SPA_CONTAINER_OF(node, struct node, node);
|
||||
|
||||
this->callbacks = callbacks;
|
||||
this->callbacks_data = data;
|
||||
this->callbacks = SPA_HOOK_INIT(callbacks, data);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1234,7 +1232,7 @@ static int node_ready(void *data, int status)
|
|||
impl_node_process(&impl->node.node);
|
||||
impl->driver = true;
|
||||
|
||||
return impl->node.callbacks->ready(impl->node.callbacks_data, status);
|
||||
return spa_node_call_ready(&impl->node.callbacks, status);
|
||||
}
|
||||
|
||||
static const struct spa_node_callbacks node_callbacks = {
|
||||
|
|
|
|||
|
|
@ -355,9 +355,9 @@ static inline void *begin_write(struct pw_protocol_native_connection *conn, uint
|
|||
return SPA_MEMBER(p, HDR_SIZE, void);
|
||||
}
|
||||
|
||||
static int builder_overflow(void *callbacks_data, uint32_t size)
|
||||
static int builder_overflow(void *data, uint32_t size)
|
||||
{
|
||||
struct impl *impl = callbacks_data;
|
||||
struct impl *impl = data;
|
||||
struct spa_pod_builder *b = &impl->builder;
|
||||
|
||||
b->size = SPA_ROUND_UP_N(size, 4096);
|
||||
|
|
@ -382,8 +382,7 @@ pw_protocol_native_connection_begin(struct pw_protocol_native_connection *conn,
|
|||
buf->msg.id = id;
|
||||
buf->msg.opcode = opcode;
|
||||
impl->builder = SPA_POD_BUILDER_INIT(NULL, 0);
|
||||
impl->builder.callbacks = &builder_callbacks;
|
||||
impl->builder.callbacks_data = impl;
|
||||
spa_pod_builder_set_callbacks(&impl->builder, &builder_callbacks, impl);
|
||||
buf->msg.n_fds = 0;
|
||||
buf->msg.fds = &buf->fds[buf->n_fds];
|
||||
buf->msg.seq = buf->seq;
|
||||
|
|
|
|||
|
|
@ -118,8 +118,7 @@ struct stream {
|
|||
|
||||
struct spa_node impl_node;
|
||||
struct spa_hook_list hooks;
|
||||
const struct spa_node_callbacks *callbacks;
|
||||
void *callbacks_data;
|
||||
struct spa_hook callbacks;
|
||||
struct spa_io_buffers *io;
|
||||
struct spa_io_position *position;
|
||||
uint32_t io_control_size;
|
||||
|
|
@ -406,8 +405,7 @@ static int impl_set_callbacks(struct spa_node *node,
|
|||
{
|
||||
struct stream *d = SPA_CONTAINER_OF(node, struct stream, impl_node);
|
||||
|
||||
d->callbacks = callbacks;
|
||||
d->callbacks_data = data;
|
||||
d->callbacks = SPA_HOOK_INIT(callbacks, data);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1464,7 +1462,7 @@ do_process(struct spa_loop *loop,
|
|||
{
|
||||
struct stream *impl = user_data;
|
||||
int res = impl_node_process_output(&impl->impl_node);
|
||||
return impl->callbacks->ready(impl->callbacks_data, res);
|
||||
return spa_node_call_ready(&impl->callbacks, res);
|
||||
}
|
||||
|
||||
static inline int call_trigger(struct stream *impl)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue