LADI
/
spa
1
Fork 0

client-node: make old driver nodes work

Bump the client-node version because we use the writefd differently now.
Support driver nodes using the old version somewhat. The stats will be
wrong but then again, we don't have any flatpak driver nodes that could
use an older version.
This commit is contained in:
Wim Taymans 2023-05-22 11:03:20 +02:00
parent 0135a1fc05
commit 7ffe64f7af
3 changed files with 9 additions and 5 deletions

View File

@ -1089,7 +1089,14 @@ static void node_on_data_fd_events(struct spa_source *source)
node->name, node->info.id, cmd - 1);
spa_log_trace_fp(impl->log, "%p: got complete %d", impl, status);
pw_context_driver_emit_complete(node->context, node);
if (impl->resource && impl->resource->version < 5) {
struct pw_node_activation *a = node->rt.activation;
int status = a->state[0].status;
spa_node_call_ready(&impl->callbacks, status);
} else {
pw_context_driver_emit_complete(node->context, node);
}
}
}

View File

@ -22,7 +22,7 @@ extern "C" {
*/
#define PW_TYPE_INTERFACE_ClientNode PW_TYPE_INFO_INTERFACE_BASE "ClientNode"
#define PW_VERSION_CLIENT_NODE 4
#define PW_VERSION_CLIENT_NODE 5
struct pw_client_node;
#define PW_EXTENSION_MODULE_CLIENT_NODE PIPEWIRE_MODULE_PREFIX "module-client-node"

View File

@ -41,8 +41,6 @@ struct impl {
unsigned int cache_params:1;
unsigned int pending_play:1;
uint64_t prev_signal_time;
};
#define pw_node_resource(r,m,v,...) pw_resource_call(r,struct pw_node_events,m,v,__VA_ARGS__)
@ -1828,7 +1826,6 @@ again:
* eventfd */
if (!node->remote)
a->signal_time = nsec;
impl->prev_signal_time = a->prev_signal_time;
a->prev_signal_time = a->signal_time;
a->sync_timeout = SPA_MIN(min_timeout, DEFAULT_SYNC_TIMEOUT);