mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-02 09:01:50 -05:00
remote: pass core_proxy to export function
We want to remove the need for the pw_remote in most cases.
This commit is contained in:
parent
dd2fa2caee
commit
7594eabdc8
8 changed files with 18 additions and 25 deletions
|
|
@ -43,7 +43,7 @@ static const struct spa_dict_item module_props[] = {
|
|||
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
|
||||
};
|
||||
|
||||
struct pw_proxy *pw_remote_spa_device_export(struct pw_remote *remote,
|
||||
struct pw_proxy *pw_remote_spa_device_export(struct pw_core_proxy *core_proxy,
|
||||
uint32_t type, struct pw_properties *props, void *object,
|
||||
size_t user_data_size);
|
||||
|
||||
|
|
|
|||
|
|
@ -33,9 +33,6 @@
|
|||
#include "pipewire/private.h"
|
||||
|
||||
struct device_data {
|
||||
struct pw_remote *remote;
|
||||
struct pw_core *core;
|
||||
|
||||
struct spa_device *device;
|
||||
struct spa_hook device_listener;
|
||||
struct spa_hook device_methods;
|
||||
|
|
@ -55,7 +52,7 @@ static const struct pw_proxy_events proxy_events = {
|
|||
.destroy = device_proxy_destroy,
|
||||
};
|
||||
|
||||
struct pw_proxy *pw_remote_spa_device_export(struct pw_remote *remote,
|
||||
struct pw_proxy *pw_remote_spa_device_export(struct pw_core_proxy *core_proxy,
|
||||
uint32_t type, struct pw_properties *props, void *object,
|
||||
size_t user_data_size)
|
||||
{
|
||||
|
|
@ -64,7 +61,7 @@ struct pw_proxy *pw_remote_spa_device_export(struct pw_remote *remote,
|
|||
struct pw_proxy *proxy;
|
||||
struct device_data *data;
|
||||
|
||||
proxy = pw_core_proxy_create_object(remote->core_proxy,
|
||||
proxy = pw_core_proxy_create_object(core_proxy,
|
||||
"client-device",
|
||||
SPA_TYPE_INTERFACE_Device,
|
||||
SPA_VERSION_DEVICE,
|
||||
|
|
@ -77,9 +74,7 @@ struct pw_proxy *pw_remote_spa_device_export(struct pw_remote *remote,
|
|||
|
||||
data = pw_proxy_get_user_data(proxy);
|
||||
data = SPA_MEMBER(data, user_data_size, struct device_data);
|
||||
data->remote = remote;
|
||||
data->device = device;
|
||||
data->core = pw_remote_get_core(remote);
|
||||
data->proxy = proxy;
|
||||
|
||||
iface = (struct spa_interface*)proxy;
|
||||
|
|
|
|||
|
|
@ -44,9 +44,9 @@ static const struct spa_dict_item module_props[] = {
|
|||
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
|
||||
};
|
||||
|
||||
struct pw_proxy *pw_remote_node_export(struct pw_remote *remote,
|
||||
struct pw_proxy *pw_core_proxy_node_export(struct pw_core_proxy *core_proxy,
|
||||
uint32_t type, struct pw_properties *props, void *object, size_t user_data_size);
|
||||
struct pw_proxy *pw_remote_spa_node_export(struct pw_remote *remote,
|
||||
struct pw_proxy *pw_core_proxy_spa_node_export(struct pw_core_proxy *core_proxy,
|
||||
uint32_t type, struct pw_properties *props, void *object, size_t user_data_size);
|
||||
|
||||
struct pw_protocol *pw_protocol_native_ext_client_node_init(struct pw_core *core);
|
||||
|
|
@ -178,11 +178,11 @@ int pipewire__module_init(struct pw_module *module, const char *args)
|
|||
pw_protocol_native_ext_client_node0_init(core);
|
||||
|
||||
data->export_node.type = PW_TYPE_INTERFACE_Node;
|
||||
data->export_node.func = pw_remote_node_export;
|
||||
data->export_node.func = pw_core_proxy_node_export;
|
||||
pw_core_register_export_type(core, &data->export_node);
|
||||
|
||||
data->export_spanode.type = SPA_TYPE_INTERFACE_Node;
|
||||
data->export_spanode.func = pw_remote_spa_node_export;
|
||||
data->export_spanode.func = pw_core_proxy_spa_node_export;
|
||||
pw_core_register_export_type(core, &data->export_spanode);
|
||||
|
||||
pw_module_add_listener(module, &data->module_listener, &module_events, data);
|
||||
|
|
|
|||
|
|
@ -1161,11 +1161,12 @@ static struct pw_proxy *node_export(struct pw_remote *remote, void *object, bool
|
|||
return data->proxy;
|
||||
}
|
||||
|
||||
struct pw_proxy *pw_remote_node_export(struct pw_remote *remote,
|
||||
struct pw_proxy *pw_core_proxy_node_export(struct pw_core_proxy *core_proxy,
|
||||
uint32_t type, struct pw_properties *props, void *object,
|
||||
size_t user_data_size)
|
||||
{
|
||||
struct pw_node *node = object;
|
||||
struct pw_remote *remote = pw_proxy_get_remote((struct pw_proxy*)core_proxy);
|
||||
|
||||
if (props) {
|
||||
pw_node_update_properties(node, &props->dict);
|
||||
|
|
@ -1174,11 +1175,12 @@ struct pw_proxy *pw_remote_node_export(struct pw_remote *remote,
|
|||
return node_export(remote, object, false, user_data_size);
|
||||
}
|
||||
|
||||
struct pw_proxy *pw_remote_spa_node_export(struct pw_remote *remote,
|
||||
struct pw_proxy *pw_core_proxy_spa_node_export(struct pw_core_proxy *core_proxy,
|
||||
uint32_t type, struct pw_properties *props, void *object,
|
||||
size_t user_data_size)
|
||||
{
|
||||
struct pw_node *node;
|
||||
struct pw_remote *remote = pw_proxy_get_remote((struct pw_proxy*)core_proxy);
|
||||
|
||||
node = pw_node_new(pw_remote_get_core(remote), props, 0);
|
||||
if (node == NULL)
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ static const struct spa_dict_item module_props[] = {
|
|||
void * pw_metadata_new(struct pw_core *core, struct pw_resource *resource,
|
||||
struct pw_properties *properties);
|
||||
|
||||
struct pw_proxy *pw_remote_metadata_export(struct pw_remote *remote,
|
||||
struct pw_proxy *pw_core_proxy_metadata_export(struct pw_core_proxy *core_proxy,
|
||||
uint32_t type, struct pw_properties *props, void *object, size_t user_data_size);
|
||||
|
||||
int pw_protocol_native_ext_metadata_init(struct pw_core *core);
|
||||
|
|
@ -174,7 +174,7 @@ int pipewire__module_init(struct pw_module *module, const char *args)
|
|||
data);
|
||||
|
||||
data->export_metadata.type = PW_TYPE_INTERFACE_Metadata;
|
||||
data->export_metadata.func = pw_remote_metadata_export;
|
||||
data->export_metadata.func = pw_core_proxy_metadata_export;
|
||||
pw_core_register_export_type(core, &data->export_metadata);
|
||||
|
||||
pw_module_add_listener(module, &data->module_listener, &module_events, data);
|
||||
|
|
|
|||
|
|
@ -33,9 +33,6 @@
|
|||
#include "extensions/metadata.h"
|
||||
|
||||
struct object_data {
|
||||
struct pw_remote *remote;
|
||||
struct pw_core *core;
|
||||
|
||||
struct pw_metadata *object;
|
||||
struct spa_hook object_listener;
|
||||
struct spa_hook object_methods;
|
||||
|
|
@ -55,7 +52,7 @@ static const struct pw_proxy_events proxy_events = {
|
|||
.destroy = object_proxy_destroy,
|
||||
};
|
||||
|
||||
struct pw_proxy *pw_remote_metadata_export(struct pw_remote *remote,
|
||||
struct pw_proxy *pw_core_proxy_metadata_export(struct pw_core_proxy *core_proxy,
|
||||
uint32_t type, struct pw_properties *props, void *object,
|
||||
size_t user_data_size)
|
||||
{
|
||||
|
|
@ -64,7 +61,7 @@ struct pw_proxy *pw_remote_metadata_export(struct pw_remote *remote,
|
|||
struct pw_proxy *proxy;
|
||||
struct object_data *data;
|
||||
|
||||
proxy = pw_core_proxy_create_object(remote->core_proxy,
|
||||
proxy = pw_core_proxy_create_object(core_proxy,
|
||||
"metadata",
|
||||
PW_TYPE_INTERFACE_Metadata,
|
||||
PW_VERSION_METADATA,
|
||||
|
|
@ -77,9 +74,7 @@ struct pw_proxy *pw_remote_metadata_export(struct pw_remote *remote,
|
|||
|
||||
data = pw_proxy_get_user_data(proxy);
|
||||
data = SPA_MEMBER(data, user_data_size, struct object_data);
|
||||
data->remote = remote;
|
||||
data->object = object;
|
||||
data->core = pw_remote_get_core(remote);
|
||||
data->proxy = proxy;
|
||||
|
||||
iface = (struct spa_interface*)proxy;
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ struct pw_core;
|
|||
|
||||
#include <pipewire/client.h>
|
||||
#include <pipewire/introspect.h>
|
||||
#include <pipewire/interfaces.h>
|
||||
#include <pipewire/remote.h>
|
||||
#include <pipewire/global.h>
|
||||
#include <pipewire/loop.h>
|
||||
|
|
@ -163,7 +164,7 @@ struct spa_handle *pw_core_load_spa_handle(struct pw_core *core,
|
|||
struct pw_export_type {
|
||||
struct spa_list link;
|
||||
uint32_t type;
|
||||
struct pw_proxy * (*func) (struct pw_remote *remote,
|
||||
struct pw_proxy * (*func) (struct pw_core_proxy *core_proxy,
|
||||
uint32_t type, struct pw_properties *properties, void *object,
|
||||
size_t user_data_size);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -558,7 +558,7 @@ struct pw_proxy *pw_remote_export(struct pw_remote *remote,
|
|||
goto error_export_type;
|
||||
}
|
||||
|
||||
proxy = t->func(remote, type, props, object, user_data_size);
|
||||
proxy = t->func(remote->core_proxy, type, props, object, user_data_size);
|
||||
if (proxy == NULL) {
|
||||
res = -errno;
|
||||
goto error_proxy_failed;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue