mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-02 09:01:50 -05:00
Add version to more methods
This commit is contained in:
parent
f7e9e0c33a
commit
4f9d631910
13 changed files with 59 additions and 29 deletions
|
|
@ -412,7 +412,7 @@ gst_pipewire_device_provider_probe (GstDeviceProvider * provider)
|
||||||
|
|
||||||
reg = pw_proxy_new(r, SPA_ID_INVALID, c->type.registry, 0);
|
reg = pw_proxy_new(r, SPA_ID_INVALID, c->type.registry, 0);
|
||||||
pw_proxy_set_implementation(reg, self, PW_VERSION_REGISTRY, ®istry_events, NULL);
|
pw_proxy_set_implementation(reg, self, PW_VERSION_REGISTRY, ®istry_events, NULL);
|
||||||
pw_core_do_get_registry(r->core_proxy, reg->id);
|
pw_core_do_get_registry(r->core_proxy, PW_VERSION_REGISTRY, reg->id);
|
||||||
pw_core_do_sync(r->core_proxy, 1);
|
pw_core_do_sync(r->core_proxy, 1);
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
|
|
@ -517,7 +517,7 @@ gst_pipewire_device_provider_start (GstDeviceProvider * provider)
|
||||||
|
|
||||||
self->registry = pw_proxy_new(self->remote, SPA_ID_INVALID, self->core->type.registry, 0);
|
self->registry = pw_proxy_new(self->remote, SPA_ID_INVALID, self->core->type.registry, 0);
|
||||||
pw_proxy_set_implementation(self->registry, self, PW_VERSION_REGISTRY, ®istry_events, NULL);
|
pw_proxy_set_implementation(self->registry, self, PW_VERSION_REGISTRY, ®istry_events, NULL);
|
||||||
pw_core_do_get_registry(self->remote->core_proxy, self->registry->id);
|
pw_core_do_get_registry(self->remote->core_proxy, PW_VERSION_REGISTRY, self->registry->id);
|
||||||
pw_core_do_sync(self->remote->core_proxy, 1);
|
pw_core_do_sync(self->remote->core_proxy, 1);
|
||||||
|
|
||||||
pw_thread_loop_unlock (self->main_loop);
|
pw_thread_loop_unlock (self->main_loop);
|
||||||
|
|
|
||||||
|
|
@ -70,6 +70,7 @@ struct async_pending {
|
||||||
char *factory_name;
|
char *factory_name;
|
||||||
char *name;
|
char *name;
|
||||||
struct pw_properties *properties;
|
struct pw_properties *properties;
|
||||||
|
uint32_t version;
|
||||||
uint32_t new_id;
|
uint32_t new_id;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -268,6 +269,7 @@ portal_response(DBusConnection *connection, DBusMessage *msg, void *user_data)
|
||||||
p->factory_name,
|
p->factory_name,
|
||||||
p->name,
|
p->name,
|
||||||
&p->properties->dict,
|
&p->properties->dict,
|
||||||
|
p->version,
|
||||||
p->new_id);
|
p->new_id);
|
||||||
} else {
|
} else {
|
||||||
pw_core_notify_error(cinfo->client->core_resource,
|
pw_core_notify_error(cinfo->client->core_resource,
|
||||||
|
|
@ -287,6 +289,7 @@ static void do_create_node(void *object,
|
||||||
const char *factory_name,
|
const char *factory_name,
|
||||||
const char *name,
|
const char *name,
|
||||||
const struct spa_dict *props,
|
const struct spa_dict *props,
|
||||||
|
uint32_t version,
|
||||||
uint32_t new_id)
|
uint32_t new_id)
|
||||||
{
|
{
|
||||||
struct pw_resource *resource = object;
|
struct pw_resource *resource = object;
|
||||||
|
|
@ -303,7 +306,7 @@ static void do_create_node(void *object,
|
||||||
struct async_pending *p;
|
struct async_pending *p;
|
||||||
|
|
||||||
if (!cinfo->is_sandboxed) {
|
if (!cinfo->is_sandboxed) {
|
||||||
cinfo->old_methods->create_node (object, factory_name, name, props, new_id);
|
cinfo->old_methods->create_node (object, factory_name, name, props, version, new_id);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (strcmp(factory_name, "client-node") != 0) {
|
if (strcmp(factory_name, "client-node") != 0) {
|
||||||
|
|
@ -360,6 +363,7 @@ static void do_create_node(void *object,
|
||||||
p->factory_name = strdup(factory_name);
|
p->factory_name = strdup(factory_name);
|
||||||
p->name = strdup(name);
|
p->name = strdup(name);
|
||||||
p->properties = props ? pw_properties_new_dict(props) : NULL;
|
p->properties = props ? pw_properties_new_dict(props) : NULL;
|
||||||
|
p->version = version;
|
||||||
p->new_id = new_id;
|
p->new_id = new_id;
|
||||||
pw_client_set_busy(client, true);
|
pw_client_set_busy(client, true);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,7 @@ static void core_marshal_sync(void *object, uint32_t seq)
|
||||||
pw_connection_end_write(connection, b);
|
pw_connection_end_write(connection, b);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void core_marshal_get_registry(void *object, uint32_t new_id)
|
static void core_marshal_get_registry(void *object, uint32_t version, uint32_t new_id)
|
||||||
{
|
{
|
||||||
struct pw_proxy *proxy = object;
|
struct pw_proxy *proxy = object;
|
||||||
struct pw_connection *connection = proxy->remote->protocol_private;
|
struct pw_connection *connection = proxy->remote->protocol_private;
|
||||||
|
|
@ -81,7 +81,9 @@ static void core_marshal_get_registry(void *object, uint32_t new_id)
|
||||||
|
|
||||||
b = pw_connection_begin_write_proxy(connection, proxy, PW_CORE_METHOD_GET_REGISTRY);
|
b = pw_connection_begin_write_proxy(connection, proxy, PW_CORE_METHOD_GET_REGISTRY);
|
||||||
|
|
||||||
spa_pod_builder_struct(b, &f, SPA_POD_TYPE_INT, new_id);
|
spa_pod_builder_struct(b, &f,
|
||||||
|
SPA_POD_TYPE_INT, version,
|
||||||
|
SPA_POD_TYPE_INT, new_id);
|
||||||
|
|
||||||
pw_connection_end_write(connection, b);
|
pw_connection_end_write(connection, b);
|
||||||
}
|
}
|
||||||
|
|
@ -89,7 +91,8 @@ static void core_marshal_get_registry(void *object, uint32_t new_id)
|
||||||
static void
|
static void
|
||||||
core_marshal_create_node(void *object,
|
core_marshal_create_node(void *object,
|
||||||
const char *factory_name,
|
const char *factory_name,
|
||||||
const char *name, const struct spa_dict *props, uint32_t new_id)
|
const char *name, const struct spa_dict *props,
|
||||||
|
uint32_t version, uint32_t new_id)
|
||||||
{
|
{
|
||||||
struct pw_proxy *proxy = object;
|
struct pw_proxy *proxy = object;
|
||||||
struct pw_connection *connection = proxy->remote->protocol_private;
|
struct pw_connection *connection = proxy->remote->protocol_private;
|
||||||
|
|
@ -111,7 +114,10 @@ core_marshal_create_node(void *object,
|
||||||
SPA_POD_TYPE_STRING, props->items[i].key,
|
SPA_POD_TYPE_STRING, props->items[i].key,
|
||||||
SPA_POD_TYPE_STRING, props->items[i].value, 0);
|
SPA_POD_TYPE_STRING, props->items[i].value, 0);
|
||||||
}
|
}
|
||||||
spa_pod_builder_add(b, SPA_POD_TYPE_INT, new_id, -SPA_POD_TYPE_STRUCT, &f, 0);
|
spa_pod_builder_add(b,
|
||||||
|
SPA_POD_TYPE_INT, version,
|
||||||
|
SPA_POD_TYPE_INT, new_id,
|
||||||
|
-SPA_POD_TYPE_STRUCT, &f, 0);
|
||||||
|
|
||||||
pw_connection_end_write(connection, b);
|
pw_connection_end_write(connection, b);
|
||||||
}
|
}
|
||||||
|
|
@ -340,7 +346,8 @@ static void core_marshal_error(void *object, uint32_t id, int res, const char *e
|
||||||
|
|
||||||
spa_pod_builder_struct(b, &f,
|
spa_pod_builder_struct(b, &f,
|
||||||
SPA_POD_TYPE_INT, id,
|
SPA_POD_TYPE_INT, id,
|
||||||
SPA_POD_TYPE_INT, res, SPA_POD_TYPE_STRING, buffer);
|
SPA_POD_TYPE_INT, res,
|
||||||
|
SPA_POD_TYPE_STRING, buffer);
|
||||||
|
|
||||||
pw_connection_end_write(connection, b);
|
pw_connection_end_write(connection, b);
|
||||||
}
|
}
|
||||||
|
|
@ -422,13 +429,16 @@ static bool core_demarshal_get_registry(void *object, void *data, size_t size)
|
||||||
{
|
{
|
||||||
struct pw_resource *resource = object;
|
struct pw_resource *resource = object;
|
||||||
struct spa_pod_iter it;
|
struct spa_pod_iter it;
|
||||||
int32_t new_id;
|
int32_t version, new_id;
|
||||||
|
|
||||||
if (!spa_pod_iter_struct(&it, data, size) ||
|
if (!spa_pod_iter_struct(&it, data, size) ||
|
||||||
!spa_pod_iter_get(&it, SPA_POD_TYPE_INT, &new_id, 0))
|
!spa_pod_iter_get(&it,
|
||||||
|
SPA_POD_TYPE_INT, &version,
|
||||||
|
SPA_POD_TYPE_INT, &new_id, 0))
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
pw_resource_do(resource, struct pw_core_methods, get_registry, new_id);
|
pw_resource_do(resource, struct pw_core_methods, get_registry, version, new_id);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -436,7 +446,7 @@ static bool core_demarshal_create_node(void *object, void *data, size_t size)
|
||||||
{
|
{
|
||||||
struct pw_resource *resource = object;
|
struct pw_resource *resource = object;
|
||||||
struct spa_pod_iter it;
|
struct spa_pod_iter it;
|
||||||
uint32_t new_id, i;
|
uint32_t version, new_id, i;
|
||||||
const char *factory_name, *name;
|
const char *factory_name, *name;
|
||||||
struct spa_dict props;
|
struct spa_dict props;
|
||||||
|
|
||||||
|
|
@ -453,11 +463,13 @@ static bool core_demarshal_create_node(void *object, void *data, size_t size)
|
||||||
SPA_POD_TYPE_STRING, &props.items[i].value, 0))
|
SPA_POD_TYPE_STRING, &props.items[i].value, 0))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!spa_pod_iter_get(&it, SPA_POD_TYPE_INT, &new_id, 0))
|
if (!spa_pod_iter_get(&it,
|
||||||
|
SPA_POD_TYPE_INT, &version,
|
||||||
|
SPA_POD_TYPE_INT, &new_id, 0))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
pw_resource_do(resource, struct pw_core_methods, create_node, factory_name,
|
pw_resource_do(resource, struct pw_core_methods, create_node, factory_name,
|
||||||
name, &props, new_id);
|
name, &props, version, new_id);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ client_bind_func(struct pw_global *global, struct pw_client *client, uint32_t ve
|
||||||
struct pw_client *this = global->object;
|
struct pw_client *this = global->object;
|
||||||
struct pw_resource *resource;
|
struct pw_resource *resource;
|
||||||
|
|
||||||
resource = pw_resource_new(client, id, global->type, 0);
|
resource = pw_resource_new(client, id, global->type, version, 0);
|
||||||
if (resource == NULL)
|
if (resource == NULL)
|
||||||
goto no_mem;
|
goto no_mem;
|
||||||
|
|
||||||
|
|
@ -110,7 +110,8 @@ struct pw_client *pw_client_new(struct pw_core *core,
|
||||||
|
|
||||||
spa_list_insert(core->client_list.prev, &this->link);
|
spa_list_insert(core->client_list.prev, &this->link);
|
||||||
|
|
||||||
pw_core_add_global(core, NULL, core->type.client, 0, this, client_bind_func, &this->global);
|
pw_core_add_global(core, NULL, core->type.client, PW_VERSION_CLIENT,
|
||||||
|
this, client_bind_func, &this->global);
|
||||||
|
|
||||||
this->info.id = this->global->id;
|
this->info.id = this->global->id;
|
||||||
this->info.props = this->properties ? &this->properties->dict : NULL;
|
this->info.props = this->properties ? &this->properties->dict : NULL;
|
||||||
|
|
|
||||||
|
|
@ -106,7 +106,7 @@ static void core_sync(void *object, uint32_t seq)
|
||||||
pw_core_notify_done(resource, seq);
|
pw_core_notify_done(resource, seq);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void core_get_registry(void *object, uint32_t new_id)
|
static void core_get_registry(void *object, uint32_t version, uint32_t new_id)
|
||||||
{
|
{
|
||||||
struct pw_resource *resource = object;
|
struct pw_resource *resource = object;
|
||||||
struct pw_client *client = resource->client;
|
struct pw_client *client = resource->client;
|
||||||
|
|
@ -117,6 +117,7 @@ static void core_get_registry(void *object, uint32_t new_id)
|
||||||
registry_resource = pw_resource_new(client,
|
registry_resource = pw_resource_new(client,
|
||||||
new_id,
|
new_id,
|
||||||
this->type.registry,
|
this->type.registry,
|
||||||
|
version,
|
||||||
0);
|
0);
|
||||||
if (registry_resource == NULL)
|
if (registry_resource == NULL)
|
||||||
goto no_mem;
|
goto no_mem;
|
||||||
|
|
@ -150,6 +151,7 @@ core_create_node(void *object,
|
||||||
const char *factory_name,
|
const char *factory_name,
|
||||||
const char *name,
|
const char *name,
|
||||||
const struct spa_dict *props,
|
const struct spa_dict *props,
|
||||||
|
uint32_t version,
|
||||||
uint32_t new_id)
|
uint32_t new_id)
|
||||||
{
|
{
|
||||||
struct pw_resource *resource = object;
|
struct pw_resource *resource = object;
|
||||||
|
|
@ -165,6 +167,7 @@ core_create_node(void *object,
|
||||||
node_resource = pw_resource_new(client,
|
node_resource = pw_resource_new(client,
|
||||||
new_id,
|
new_id,
|
||||||
factory->type,
|
factory->type,
|
||||||
|
version,
|
||||||
0);
|
0);
|
||||||
if (node_resource == NULL)
|
if (node_resource == NULL)
|
||||||
goto no_resource;
|
goto no_resource;
|
||||||
|
|
@ -256,7 +259,7 @@ core_bind_func(struct pw_global *global, struct pw_client *client, uint32_t vers
|
||||||
struct pw_core *this = global->object;
|
struct pw_core *this = global->object;
|
||||||
struct pw_resource *resource;
|
struct pw_resource *resource;
|
||||||
|
|
||||||
resource = pw_resource_new(client, id, global->type, 0);
|
resource = pw_resource_new(client, id, global->type, version, 0);
|
||||||
if (resource == NULL)
|
if (resource == NULL)
|
||||||
goto no_mem;
|
goto no_mem;
|
||||||
|
|
||||||
|
|
@ -334,7 +337,8 @@ struct pw_core *pw_core_new(struct pw_loop *main_loop, struct pw_properties *pro
|
||||||
pw_signal_init(&this->global_added);
|
pw_signal_init(&this->global_added);
|
||||||
pw_signal_init(&this->global_removed);
|
pw_signal_init(&this->global_removed);
|
||||||
|
|
||||||
pw_core_add_global(this, NULL, this->type.core, 0, this, core_bind_func, &this->global);
|
pw_core_add_global(this, NULL, this->type.core, PW_VERSION_CORE,
|
||||||
|
this, core_bind_func, &this->global);
|
||||||
|
|
||||||
this->info.id = this->global->id;
|
this->info.id = this->global->id;
|
||||||
this->info.change_mask = 0;
|
this->info.change_mask = 0;
|
||||||
|
|
|
||||||
|
|
@ -95,9 +95,10 @@ struct pw_core_methods {
|
||||||
*
|
*
|
||||||
* Create a registry object that allows the client to list and bind
|
* Create a registry object that allows the client to list and bind
|
||||||
* the global objects available from the PipeWire server
|
* the global objects available from the PipeWire server
|
||||||
|
* \param version the client proxy id
|
||||||
* \param id the client proxy id
|
* \param id the client proxy id
|
||||||
*/
|
*/
|
||||||
void (*get_registry) (void *object, uint32_t new_id);
|
void (*get_registry) (void *object, uint32_t version, uint32_t new_id);
|
||||||
/**
|
/**
|
||||||
* Update the client properties
|
* Update the client properties
|
||||||
* \param props the new client properties
|
* \param props the new client properties
|
||||||
|
|
@ -111,12 +112,14 @@ struct pw_core_methods {
|
||||||
* \param factory_name the factory name to use
|
* \param factory_name the factory name to use
|
||||||
* \param name the node name
|
* \param name the node name
|
||||||
* \param props extra properties
|
* \param props extra properties
|
||||||
|
* \param version the version of the interface
|
||||||
* \param new_id the client proxy id
|
* \param new_id the client proxy id
|
||||||
*/
|
*/
|
||||||
void (*create_node) (void *object,
|
void (*create_node) (void *object,
|
||||||
const char *factory_name,
|
const char *factory_name,
|
||||||
const char *name,
|
const char *name,
|
||||||
const struct spa_dict *props,
|
const struct spa_dict *props,
|
||||||
|
uint32_t version,
|
||||||
uint32_t new_id);
|
uint32_t new_id);
|
||||||
/**
|
/**
|
||||||
* Create a new link between two node ports
|
* Create a new link between two node ports
|
||||||
|
|
|
||||||
|
|
@ -943,7 +943,7 @@ link_bind_func(struct pw_global *global, struct pw_client *client, uint32_t vers
|
||||||
struct pw_link *this = global->object;
|
struct pw_link *this = global->object;
|
||||||
struct pw_resource *resource;
|
struct pw_resource *resource;
|
||||||
|
|
||||||
resource = pw_resource_new(client, id, global->type, 0);
|
resource = pw_resource_new(client, id, global->type, version, 0);
|
||||||
|
|
||||||
if (resource == NULL)
|
if (resource == NULL)
|
||||||
goto no_mem;
|
goto no_mem;
|
||||||
|
|
@ -1052,7 +1052,8 @@ struct pw_link *pw_link_new(struct pw_core *core,
|
||||||
|
|
||||||
spa_list_insert(core->link_list.prev, &this->link);
|
spa_list_insert(core->link_list.prev, &this->link);
|
||||||
|
|
||||||
pw_core_add_global(core, NULL, core->type.link, 0, this, link_bind_func, &this->global);
|
pw_core_add_global(core, NULL, core->type.link, PW_VERSION_LINK,
|
||||||
|
this, link_bind_func, &this->global);
|
||||||
|
|
||||||
this->info.id = this->global->id;
|
this->info.id = this->global->id;
|
||||||
this->info.output_node_id = output ? output_node->global->id : -1;
|
this->info.output_node_id = output ? output_node->global->id : -1;
|
||||||
|
|
|
||||||
|
|
@ -92,7 +92,7 @@ module_bind_func(struct pw_global *global, struct pw_client *client, uint32_t ve
|
||||||
struct pw_module *this = global->object;
|
struct pw_module *this = global->object;
|
||||||
struct pw_resource *resource;
|
struct pw_resource *resource;
|
||||||
|
|
||||||
resource = pw_resource_new(client, id, global->type, 0);
|
resource = pw_resource_new(client, id, global->type, version, 0);
|
||||||
if (resource == NULL)
|
if (resource == NULL)
|
||||||
goto no_mem;
|
goto no_mem;
|
||||||
|
|
||||||
|
|
@ -179,7 +179,8 @@ struct pw_module *pw_module_load(struct pw_core *core,
|
||||||
if (!init_func(this, (char *) args))
|
if (!init_func(this, (char *) args))
|
||||||
goto init_failed;
|
goto init_failed;
|
||||||
|
|
||||||
pw_core_add_global(core, NULL, core->type.module, 0, impl, module_bind_func, &this->global);
|
pw_core_add_global(core, NULL, core->type.module, PW_VERSION_MODULE,
|
||||||
|
impl, module_bind_func, &this->global);
|
||||||
|
|
||||||
this->info.id = this->global->id;
|
this->info.id = this->global->id;
|
||||||
this->info.name = name ? strdup(name) : NULL;
|
this->info.name = name ? strdup(name) : NULL;
|
||||||
|
|
|
||||||
|
|
@ -215,7 +215,7 @@ node_bind_func(struct pw_global *global, struct pw_client *client, uint32_t vers
|
||||||
struct pw_node *this = global->object;
|
struct pw_node *this = global->object;
|
||||||
struct pw_resource *resource;
|
struct pw_resource *resource;
|
||||||
|
|
||||||
resource = pw_resource_new(client, id, global->type, 0);
|
resource = pw_resource_new(client, id, global->type, version, 0);
|
||||||
if (resource == NULL)
|
if (resource == NULL)
|
||||||
goto no_mem;
|
goto no_mem;
|
||||||
|
|
||||||
|
|
@ -257,9 +257,8 @@ void pw_node_export(struct pw_node *this)
|
||||||
|
|
||||||
spa_list_insert(this->core->node_list.prev, &this->link);
|
spa_list_insert(this->core->node_list.prev, &this->link);
|
||||||
|
|
||||||
pw_core_add_global(this->core,
|
pw_core_add_global(this->core, this->owner, this->core->type.node, PW_VERSION_NODE,
|
||||||
this->owner,
|
this, node_bind_func, &this->global);
|
||||||
this->core->type.node, 0, this, node_bind_func, &this->global);
|
|
||||||
|
|
||||||
pw_loop_invoke(this->data_loop, do_node_add, 1, 0, NULL, false, this);
|
pw_loop_invoke(this->data_loop, do_node_add, 1, 0, NULL, false, this);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,7 @@ struct impl {
|
||||||
struct pw_resource *pw_resource_new(struct pw_client *client,
|
struct pw_resource *pw_resource_new(struct pw_client *client,
|
||||||
uint32_t id,
|
uint32_t id,
|
||||||
uint32_t type,
|
uint32_t type,
|
||||||
|
uint32_t client_version,
|
||||||
size_t user_data_size)
|
size_t user_data_size)
|
||||||
{
|
{
|
||||||
struct impl *impl;
|
struct impl *impl;
|
||||||
|
|
@ -45,6 +46,7 @@ struct pw_resource *pw_resource_new(struct pw_client *client,
|
||||||
this->core = client->core;
|
this->core = client->core;
|
||||||
this->client = client;
|
this->client = client;
|
||||||
this->type = type;
|
this->type = type;
|
||||||
|
this->client_version = client_version;
|
||||||
|
|
||||||
pw_signal_init(&this->destroy_signal);
|
pw_signal_init(&this->destroy_signal);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -65,6 +65,7 @@ struct pw_resource {
|
||||||
|
|
||||||
uint32_t id; /**< per client unique id, index in client objects */
|
uint32_t id; /**< per client unique id, index in client objects */
|
||||||
uint32_t type; /**< type id of the object */
|
uint32_t type; /**< type id of the object */
|
||||||
|
uint32_t client_version; /**< version of the client interface */
|
||||||
const struct pw_interface *iface; /**< protocol specific interface functions */
|
const struct pw_interface *iface; /**< protocol specific interface functions */
|
||||||
|
|
||||||
void *object; /**< pointer to the object */
|
void *object; /**< pointer to the object */
|
||||||
|
|
@ -83,6 +84,7 @@ struct pw_resource *
|
||||||
pw_resource_new(struct pw_client *client,
|
pw_resource_new(struct pw_client *client,
|
||||||
uint32_t id,
|
uint32_t id,
|
||||||
uint32_t type,
|
uint32_t type,
|
||||||
|
uint32_t client_version,
|
||||||
size_t user_data_size);
|
size_t user_data_size);
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
||||||
|
|
@ -931,6 +931,7 @@ pw_stream_connect(struct pw_stream *stream,
|
||||||
"client-node",
|
"client-node",
|
||||||
"client-node",
|
"client-node",
|
||||||
&stream->properties->dict,
|
&stream->properties->dict,
|
||||||
|
PW_VERSION_CLIENT_NODE,
|
||||||
impl->node_proxy->id);
|
impl->node_proxy->id);
|
||||||
|
|
||||||
do_node_init(stream);
|
do_node_init(stream);
|
||||||
|
|
|
||||||
|
|
@ -315,7 +315,7 @@ static void on_state_changed(struct pw_listener *listener, struct pw_remote *rem
|
||||||
pw_proxy_set_implementation(data->registry_proxy, data, PW_VERSION_REGISTRY,
|
pw_proxy_set_implementation(data->registry_proxy, data, PW_VERSION_REGISTRY,
|
||||||
®istry_events, NULL);
|
®istry_events, NULL);
|
||||||
|
|
||||||
pw_core_do_get_registry(data->remote->core_proxy,
|
pw_core_do_get_registry(data->remote->core_proxy, PW_VERSION_REGISTRY,
|
||||||
data->registry_proxy->id);
|
data->registry_proxy->id);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue