mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-12-21 08:56:56 -05:00
Add parent_id
Add parent_id to globals to make hierarchy of interfaces. We can use this to group interfaces or to describe the owner.
This commit is contained in:
parent
1acba78234
commit
a003d1a39f
27 changed files with 151 additions and 99 deletions
|
|
@ -56,6 +56,10 @@ void pw_protocol_native_init(struct pw_protocol *protocol);
|
|||
|
||||
typedef bool(*demarshal_func_t) (void *object, void *data, size_t size);
|
||||
|
||||
struct protocol_data {
|
||||
struct pw_module *module;
|
||||
};
|
||||
|
||||
struct connection {
|
||||
struct pw_protocol_connection this;
|
||||
|
||||
|
|
@ -82,10 +86,6 @@ struct listener {
|
|||
struct spa_loop_control_hooks hooks;
|
||||
};
|
||||
|
||||
struct protocol_data {
|
||||
void *unused;
|
||||
};
|
||||
|
||||
struct client_data {
|
||||
int fd;
|
||||
struct spa_source *source;
|
||||
|
|
@ -198,6 +198,7 @@ static struct pw_client *client_new(struct listener *l, int fd)
|
|||
struct client_data *this;
|
||||
struct pw_client *client;
|
||||
struct pw_protocol *protocol = l->this.protocol;
|
||||
struct protocol_data *pd = protocol->user_data;
|
||||
socklen_t len;
|
||||
struct ucred ucred, *ucredp;
|
||||
|
||||
|
|
@ -209,7 +210,7 @@ static struct pw_client *client_new(struct listener *l, int fd)
|
|||
ucredp = &ucred;
|
||||
}
|
||||
|
||||
client = pw_client_new(protocol->core, ucredp, NULL, sizeof(struct client_data));
|
||||
client = pw_client_new(protocol->core, pd->module->global, ucredp, NULL, sizeof(struct client_data));
|
||||
if (client == NULL)
|
||||
goto no_client;
|
||||
|
||||
|
|
@ -698,14 +699,16 @@ const static struct pw_protocol_native_ext protocol_ext_impl = {
|
|||
impl_ext_end_resource,
|
||||
};
|
||||
|
||||
static struct pw_protocol *pw_protocol_native_new(struct pw_core *core, struct pw_properties *properties)
|
||||
static bool module_init(struct pw_module *module, struct pw_properties *properties)
|
||||
{
|
||||
struct pw_core *core = module->core;
|
||||
struct pw_protocol *this;
|
||||
const char *val;
|
||||
struct protocol_data *d;
|
||||
|
||||
this = pw_protocol_new(core, PW_TYPE_PROTOCOL__Native, sizeof(struct protocol_data));
|
||||
if (this == NULL)
|
||||
return NULL;
|
||||
return false;
|
||||
|
||||
this->implementation = &protocol_impl;
|
||||
this->extension = &protocol_ext_impl;
|
||||
|
|
@ -714,11 +717,14 @@ static struct pw_protocol *pw_protocol_native_new(struct pw_core *core, struct p
|
|||
|
||||
pw_log_debug("protocol-native %p: new", this);
|
||||
|
||||
d = this->user_data;
|
||||
d->module = module;
|
||||
|
||||
if ((val = pw_properties_get(core->properties, "pipewire.daemon"))) {
|
||||
if (atoi(val) == 1)
|
||||
impl_add_listener(this, core, properties);
|
||||
}
|
||||
return this;
|
||||
return true;
|
||||
}
|
||||
|
||||
#if 0
|
||||
|
|
@ -741,6 +747,5 @@ static void pw_protocol_native_destroy(struct impl *impl)
|
|||
|
||||
bool pipewire__module_init(struct pw_module *module, const char *args)
|
||||
{
|
||||
pw_protocol_native_new(module->core, NULL);
|
||||
return true;
|
||||
return module_init(module, NULL);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue