From 989f5978604e59d059ffa42c83d8abf361be7f52 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Wed, 26 Apr 2023 15:47:19 +0200 Subject: [PATCH] client-node: update the driving node status Look at the clock and position to see if we are selected as the driver or not. --- src/modules/module-client-node/remote-node.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/modules/module-client-node/remote-node.c b/src/modules/module-client-node/remote-node.c index 2dc1aa078..8e7a88b62 100644 --- a/src/modules/module-client-node/remote-node.c +++ b/src/modules/module-client-node/remote-node.c @@ -69,6 +69,9 @@ struct node_data { struct spa_hook proxy_client_node_listener; struct spa_list links; + + struct spa_io_clock *clock; + struct spa_io_position *position; }; struct link { @@ -466,6 +469,16 @@ client_node_set_io(void *_data, pw_log_debug("node %p: set io %s %p", proxy, spa_debug_type_find_name(spa_type_io, id), ptr); + switch(id) { + case SPA_IO_Clock: + data->clock = size >= sizeof(*data->clock) ? ptr : NULL; + break; + case SPA_IO_Position: + data->position = size >= sizeof(*data->position) ? ptr : NULL; + break; + } + data->node->driving = data->clock && data->position && data->position->clock.id == data->clock->id; + res = spa_node_set_io(data->node->node, id, ptr, size); pw_memmap_free(old);