mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-04 13:30:12 -05:00
impl-node: add more backwards compat
Make sure newer clients can work with an older server: - Add client and server versions in the activation - On older server, clients needs to trigger peers without CAS of status - On older server, jack transport is started with command. - Use client version to know when to set the INACTIVE/FINISHED state on the server instead. - Async clients need to trigger peers on old server.
This commit is contained in:
parent
2501b347ef
commit
a07f73ce82
5 changed files with 108 additions and 45 deletions
|
|
@ -210,6 +210,8 @@ static int client_node_transport(void *_data,
|
|||
spa_system_close(node->rt.target.system, node->source.fd);
|
||||
node->rt.target.fd = node->source.fd = readfd;
|
||||
|
||||
node->rt.target.activation->client_version = PW_VERSION_NODE_ACTIVATION;
|
||||
|
||||
data->have_transport = true;
|
||||
|
||||
if (node->active)
|
||||
|
|
@ -839,6 +841,8 @@ client_node_set_activation(void *_data,
|
|||
link->target.activation = ptr;
|
||||
link->target.system = data->data_system;
|
||||
link->target.fd = signalfd;
|
||||
link->target.trigger = link->target.activation->server_version < 1 ?
|
||||
trigger_target_v0 : trigger_target_v1;
|
||||
spa_list_append(&data->links, &link->link);
|
||||
|
||||
pw_impl_node_add_target(node, &link->target);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue