mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-03 09:01:54 -05:00
remote: pause with invoke
This commit is contained in:
parent
bf344a86e5
commit
67e6a66429
2 changed files with 16 additions and 4 deletions
|
|
@ -1 +1 @@
|
||||||
Subproject commit d02a8375c3c5c59303cb31e43f5addc3517f1f39
|
Subproject commit 2864e7ec75602534795240a376804007d16db213
|
||||||
|
|
@ -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));
|
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)
|
static void client_node_command(void *object, uint32_t seq, const struct spa_command *command)
|
||||||
{
|
{
|
||||||
struct pw_proxy *proxy = object;
|
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);
|
pw_log_debug("node %p: pause %d", proxy, seq);
|
||||||
|
|
||||||
if (data->rtsocket_source) {
|
if (data->rtsocket_source) {
|
||||||
pw_loop_update_io(remote->core->data_loop,
|
pw_loop_invoke(data->core->data_loop,
|
||||||
data->rtsocket_source,
|
do_pause_source, 1, NULL, 0, true, data);
|
||||||
SPA_IO_ERR | SPA_IO_HUP);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((res = spa_node_send_command(data->node->node, command)) < 0)
|
if ((res = spa_node_send_command(data->node->node, command)) < 0)
|
||||||
|
|
@ -985,6 +995,8 @@ client_node_port_set_param(void *object,
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pw_log_debug("port %p: set param %d %p", port, id, param);
|
||||||
|
|
||||||
if (id == SPA_PARAM_Format) {
|
if (id == SPA_PARAM_Format) {
|
||||||
struct mix *mix;
|
struct mix *mix;
|
||||||
spa_list_for_each(mix, &data->mix[direction], link) {
|
spa_list_for_each(mix, &data->mix[direction], link) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue