From 830f52cbb104a844b45176e848cfb7e23247a95c Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Thu, 6 May 2021 18:23:46 +0200 Subject: [PATCH] jack: join the freewheel group when freewheeling --- pipewire-jack/src/pipewire-jack.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/pipewire-jack/src/pipewire-jack.c b/pipewire-jack/src/pipewire-jack.c index a06217423..4bbbef9ec 100644 --- a/pipewire-jack/src/pipewire-jack.c +++ b/pipewire-jack/src/pipewire-jack.c @@ -3274,8 +3274,24 @@ int jack_set_latency_callback (jack_client_t *client, SPA_EXPORT int jack_set_freewheel(jack_client_t* client, int onoff) { - pw_log_warn(NAME" %p: not implemented %d", client, onoff); - return -ENOTSUP; + struct client *c = (struct client *) client; + struct spa_node_info ni; + struct spa_dict_item items[1]; + + pw_log_info(NAME" %p: freewheel %d", client, onoff); + + ni = SPA_NODE_INFO_INIT(); + ni.max_input_ports = MAX_PORTS; + ni.max_output_ports = MAX_PORTS; + ni.change_mask = SPA_NODE_CHANGE_MASK_PROPS; + items[0] = SPA_DICT_ITEM_INIT("node.group", onoff ? "pipewire.freewheel" : ""); + ni.props = &SPA_DICT_INIT_ARRAY(items); + + pw_client_node_update(c->node, + PW_CLIENT_NODE_UPDATE_INFO, + 0, NULL, &ni); + + return 0; } SPA_EXPORT