remote: pause with invoke

This commit is contained in:
Wim Taymans 2018-11-29 17:31:47 +01:00
parent bf344a86e5
commit 67e6a66429
2 changed files with 16 additions and 4 deletions

@ -1 +1 @@
Subproject commit d02a8375c3c5c59303cb31e43f5addc3517f1f39
Subproject commit 2864e7ec75602534795240a376804007d16db213

View file

@ -886,6 +886,17 @@ static void client_node_event(void *object, const struct spa_event *event)
pw_log_warn("unhandled node event %d", SPA_EVENT_TYPE(event));
}
static int
do_pause_source(struct spa_loop *loop,
bool async, uint32_t seq, const void *data, size_t size, void *user_data)
{
struct node_data *d = user_data;
pw_loop_update_io(d->core->data_loop,
d->rtsocket_source,
SPA_IO_ERR | SPA_IO_HUP);
return 0;
}
static void client_node_command(void *object, uint32_t seq, const struct spa_command *command)
{
struct pw_proxy *proxy = object;
@ -898,9 +909,8 @@ static void client_node_command(void *object, uint32_t seq, const struct spa_com
pw_log_debug("node %p: pause %d", proxy, seq);
if (data->rtsocket_source) {
pw_loop_update_io(remote->core->data_loop,
data->rtsocket_source,
SPA_IO_ERR | SPA_IO_HUP);
pw_loop_invoke(data->core->data_loop,
do_pause_source, 1, NULL, 0, true, data);
}
if ((res = spa_node_send_command(data->node->node, command)) < 0)
@ -985,6 +995,8 @@ client_node_port_set_param(void *object,
goto done;
}
pw_log_debug("port %p: set param %d %p", port, id, param);
if (id == SPA_PARAM_Format) {
struct mix *mix;
spa_list_for_each(mix, &data->mix[direction], link) {