mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-12-29 11:08:40 -05:00
Add user_data to callbacks
Add user data to callbacks, it's more flexible and natural
This commit is contained in:
parent
59ec32c039
commit
763bd1100e
27 changed files with 156 additions and 165 deletions
|
|
@ -110,7 +110,6 @@ struct data {
|
|||
struct spa_graph_node sink_node;
|
||||
|
||||
struct spa_node *sink;
|
||||
struct spa_node_callbacks sink_callbacks;
|
||||
struct spa_port_io mix_sink_io[1];
|
||||
|
||||
struct spa_node *mix;
|
||||
|
|
@ -227,22 +226,19 @@ static int make_node(struct data *data, struct spa_node **node, const char *lib,
|
|||
return SPA_RESULT_ERROR;
|
||||
}
|
||||
|
||||
static void on_sink_done(const struct spa_node_callbacks *callbacks,
|
||||
struct spa_node *node, int seq, int res)
|
||||
static void on_sink_done(struct spa_node *node, int seq, int res, void *user_data)
|
||||
{
|
||||
printf("got done %d %d\n", seq, res);
|
||||
}
|
||||
|
||||
static void on_sink_event(const struct spa_node_callbacks *callbacks,
|
||||
struct spa_node *node, struct spa_event *event)
|
||||
static void on_sink_event(struct spa_node *node, struct spa_event *event, void *user_data)
|
||||
{
|
||||
printf("got event %d\n", SPA_EVENT_TYPE(event));
|
||||
}
|
||||
|
||||
static void on_sink_need_input(const struct spa_node_callbacks *callbacks,
|
||||
struct spa_node *node)
|
||||
static void on_sink_need_input(struct spa_node *node, void *user_data)
|
||||
{
|
||||
struct data *data = SPA_CONTAINER_OF(callbacks, struct data, sink_callbacks);
|
||||
struct data *data = user_data;
|
||||
#ifdef USE_GRAPH
|
||||
data->sink_node.action = PROCESS_CHECK;
|
||||
data->sink_node.state = SPA_RESULT_NEED_BUFFER;
|
||||
|
|
@ -282,12 +278,12 @@ static void on_sink_need_input(const struct spa_node_callbacks *callbacks,
|
|||
}
|
||||
|
||||
static void
|
||||
on_sink_reuse_buffer(const struct spa_node_callbacks *callbacks,
|
||||
struct spa_node *node,
|
||||
on_sink_reuse_buffer(struct spa_node *node,
|
||||
uint32_t port_id,
|
||||
uint32_t buffer_id)
|
||||
uint32_t buffer_id,
|
||||
void *user_data)
|
||||
{
|
||||
struct data *data = SPA_CONTAINER_OF(callbacks, struct data, sink_callbacks);
|
||||
struct data *data = user_data;
|
||||
|
||||
data->mix_sink_io[0].buffer_id = buffer_id;
|
||||
}
|
||||
|
|
@ -341,8 +337,7 @@ static int make_nodes(struct data *data, const char *device)
|
|||
printf("can't create alsa-sink: %d\n", res);
|
||||
return res;
|
||||
}
|
||||
data->sink_callbacks = sink_callbacks;
|
||||
spa_node_set_callbacks(data->sink, &data->sink_callbacks);
|
||||
spa_node_set_callbacks(data->sink, &sink_callbacks, data);
|
||||
|
||||
spa_pod_builder_init(&b, buffer, sizeof(buffer));
|
||||
spa_pod_builder_props(&b, &f[0], data->type.props,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue