mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-07 13:30:09 -05:00
add some missing events
Add initialized events for completeness
This commit is contained in:
parent
b73976ff10
commit
b7c5e00697
14 changed files with 44 additions and 2 deletions
|
|
@ -412,6 +412,8 @@ int pw_client_register(struct pw_client *client,
|
||||||
pw_properties_setf(client->properties, PW_KEY_OBJECT_ID, "%d", client->info.id);
|
pw_properties_setf(client->properties, PW_KEY_OBJECT_ID, "%d", client->info.id);
|
||||||
client->info.props = &client->properties->dict;
|
client->info.props = &client->properties->dict;
|
||||||
|
|
||||||
|
pw_client_emit_initialized(client);
|
||||||
|
|
||||||
pw_global_add_listener(client->global, &client->global_listener, &global_events, client);
|
pw_global_add_listener(client->global, &client->global_listener, &global_events, client);
|
||||||
pw_global_register(client->global);
|
pw_global_register(client->global);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -91,6 +91,9 @@ struct pw_client_events {
|
||||||
/** emited right before the client is freed */
|
/** emited right before the client is freed */
|
||||||
void (*free) (void *data);
|
void (*free) (void *data);
|
||||||
|
|
||||||
|
/** the client is initialized */
|
||||||
|
void (*initialized) (void *data);
|
||||||
|
|
||||||
/** emited when the client info changed */
|
/** emited when the client info changed */
|
||||||
void (*info_changed) (void *data, const struct pw_client_info *info);
|
void (*info_changed) (void *data, const struct pw_client_info *info);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -445,6 +445,8 @@ int pw_device_register(struct pw_device *device,
|
||||||
pw_properties_setf(device->properties, PW_KEY_OBJECT_ID, "%d", device->info.id);
|
pw_properties_setf(device->properties, PW_KEY_OBJECT_ID, "%d", device->info.id);
|
||||||
device->info.props = &device->properties->dict;
|
device->info.props = &device->properties->dict;
|
||||||
|
|
||||||
|
pw_device_emit_initialized(device);
|
||||||
|
|
||||||
pw_global_add_listener(device->global, &device->global_listener, &global_events, device);
|
pw_global_add_listener(device->global, &device->global_listener, &global_events, device);
|
||||||
pw_global_register(device->global);
|
pw_global_register(device->global);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,8 @@ struct pw_device_events {
|
||||||
void (*destroy) (void *data);
|
void (*destroy) (void *data);
|
||||||
/** the device is freed */
|
/** the device is freed */
|
||||||
void (*free) (void *data);
|
void (*free) (void *data);
|
||||||
|
/** the device is initialized */
|
||||||
|
void (*initialized) (void *data);
|
||||||
|
|
||||||
/** the device info changed */
|
/** the device info changed */
|
||||||
void (*info_changed) (void *data, const struct pw_device_info *info);
|
void (*info_changed) (void *data, const struct pw_device_info *info);
|
||||||
|
|
|
||||||
|
|
@ -99,6 +99,7 @@ void pw_factory_destroy(struct pw_factory *factory)
|
||||||
pw_global_destroy(factory->global);
|
pw_global_destroy(factory->global);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pw_factory_emit_free(factory);
|
||||||
pw_log_debug(NAME" %p: free", factory);
|
pw_log_debug(NAME" %p: free", factory);
|
||||||
free((char *)factory->info.name);
|
free((char *)factory->info.name);
|
||||||
|
|
||||||
|
|
@ -232,6 +233,8 @@ int pw_factory_register(struct pw_factory *factory,
|
||||||
pw_properties_setf(factory->properties, PW_KEY_OBJECT_ID, "%d", factory->info.id);
|
pw_properties_setf(factory->properties, PW_KEY_OBJECT_ID, "%d", factory->info.id);
|
||||||
factory->info.props = &factory->properties->dict;
|
factory->info.props = &factory->properties->dict;
|
||||||
|
|
||||||
|
pw_factory_emit_initialized(factory);
|
||||||
|
|
||||||
pw_global_add_listener(factory->global, &factory->global_listener, &global_events, factory);
|
pw_global_add_listener(factory->global, &factory->global_listener, &global_events, factory);
|
||||||
pw_global_register(factory->global);
|
pw_global_register(factory->global);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,10 @@ struct pw_factory_events {
|
||||||
|
|
||||||
/** the factory is destroyed */
|
/** the factory is destroyed */
|
||||||
void (*destroy) (void *data);
|
void (*destroy) (void *data);
|
||||||
|
/** the factory is freed */
|
||||||
|
void (*free) (void *data);
|
||||||
|
/** the factory is initialized */
|
||||||
|
void (*initialized) (void *data);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct pw_factory_implementation {
|
struct pw_factory_implementation {
|
||||||
|
|
|
||||||
|
|
@ -1248,6 +1248,8 @@ int pw_link_register(struct pw_link *link,
|
||||||
pw_properties_setf(link->properties, PW_KEY_OBJECT_ID, "%d", link->info.id);
|
pw_properties_setf(link->properties, PW_KEY_OBJECT_ID, "%d", link->info.id);
|
||||||
link->info.props = &link->properties->dict;
|
link->info.props = &link->properties->dict;
|
||||||
|
|
||||||
|
pw_link_emit_initialized(link);
|
||||||
|
|
||||||
pw_global_add_listener(link->global, &link->global_listener, &global_events, link);
|
pw_global_add_listener(link->global, &link->global_listener, &global_events, link);
|
||||||
pw_global_register(link->global);
|
pw_global_register(link->global);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,9 @@ struct pw_link_events {
|
||||||
/** A link is freed */
|
/** A link is freed */
|
||||||
void (*free) (void *data);
|
void (*free) (void *data);
|
||||||
|
|
||||||
|
/** a Link is initialized */
|
||||||
|
void (*initialized) (void *data);
|
||||||
|
|
||||||
/** The info changed on a link */
|
/** The info changed on a link */
|
||||||
void (*info_changed) (void *data, const struct pw_link_info *info);
|
void (*info_changed) (void *data, const struct pw_link_info *info);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -264,6 +264,8 @@ pw_module_load(struct pw_core *core,
|
||||||
pw_properties_setf(this->properties, PW_KEY_OBJECT_ID, "%d", this->info.id);
|
pw_properties_setf(this->properties, PW_KEY_OBJECT_ID, "%d", this->info.id);
|
||||||
this->info.props = &this->properties->dict;
|
this->info.props = &this->properties->dict;
|
||||||
|
|
||||||
|
pw_module_emit_initialized(this);
|
||||||
|
|
||||||
pw_global_add_listener(this->global, &this->global_listener, &global_events, this);
|
pw_global_add_listener(this->global, &this->global_listener, &global_events, this);
|
||||||
|
|
||||||
if ((res = init_func(this, args)) < 0)
|
if ((res = init_func(this, args)) < 0)
|
||||||
|
|
@ -334,7 +336,8 @@ void pw_module_destroy(struct pw_module *module)
|
||||||
pw_global_destroy(module->global);
|
pw_global_destroy(module->global);
|
||||||
}
|
}
|
||||||
|
|
||||||
pw_log_debug(NAME" %p: destroy", module);
|
pw_log_debug(NAME" %p: free", module);
|
||||||
|
pw_module_emit_free(module);
|
||||||
free((char *) module->info.name);
|
free((char *) module->info.name);
|
||||||
free((char *) module->info.filename);
|
free((char *) module->info.filename);
|
||||||
free((char *) module->info.args);
|
free((char *) module->info.args);
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,10 @@ struct pw_module_events {
|
||||||
|
|
||||||
/** The module is destroyed */
|
/** The module is destroyed */
|
||||||
void (*destroy) (void *data);
|
void (*destroy) (void *data);
|
||||||
|
/** The module is freed */
|
||||||
|
void (*free) (void *data);
|
||||||
|
/** The module is initialized */
|
||||||
|
void (*initialized) (void *data);
|
||||||
|
|
||||||
/** The module is registered. This is a good time to register
|
/** The module is registered. This is a good time to register
|
||||||
* objectes created from the module. */
|
* objectes created from the module. */
|
||||||
|
|
|
||||||
|
|
@ -607,8 +607,9 @@ int pw_node_register(struct pw_node *this,
|
||||||
insert_driver(core, this);
|
insert_driver(core, this);
|
||||||
this->registered = true;
|
this->registered = true;
|
||||||
|
|
||||||
|
this->rt.activation->position.clock.id = this->global->id;
|
||||||
|
|
||||||
this->info.id = this->global->id;
|
this->info.id = this->global->id;
|
||||||
this->rt.activation->position.clock.id = this->info.id;
|
|
||||||
pw_properties_setf(this->properties, PW_KEY_OBJECT_ID, "%d", this->info.id);
|
pw_properties_setf(this->properties, PW_KEY_OBJECT_ID, "%d", this->info.id);
|
||||||
this->info.props = &this->properties->dict;
|
this->info.props = &this->properties->dict;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -819,6 +819,8 @@ int pw_port_register(struct pw_port *port,
|
||||||
pw_properties_setf(port->properties, PW_KEY_OBJECT_ID, "%d", port->info.id);
|
pw_properties_setf(port->properties, PW_KEY_OBJECT_ID, "%d", port->info.id);
|
||||||
port->info.props = &port->properties->dict;
|
port->info.props = &port->properties->dict;
|
||||||
|
|
||||||
|
pw_port_emit_initialized(port);
|
||||||
|
|
||||||
return pw_global_register(port->global);
|
return pw_global_register(port->global);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,9 @@ struct pw_port_events {
|
||||||
/** The port is freed */
|
/** The port is freed */
|
||||||
void (*free) (void *data);
|
void (*free) (void *data);
|
||||||
|
|
||||||
|
/** The port is initialized */
|
||||||
|
void (*initialized) (void *data);
|
||||||
|
|
||||||
/** the port info changed */
|
/** the port info changed */
|
||||||
void (*info_changed) (void *data, const struct pw_port_info *info);
|
void (*info_changed) (void *data, const struct pw_port_info *info);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -91,6 +91,7 @@ typedef uint32_t (*pw_permission_func_t) (struct pw_global *global,
|
||||||
|
|
||||||
#define pw_client_emit_destroy(o) pw_client_emit(o, destroy, 0)
|
#define pw_client_emit_destroy(o) pw_client_emit(o, destroy, 0)
|
||||||
#define pw_client_emit_free(o) pw_client_emit(o, free, 0)
|
#define pw_client_emit_free(o) pw_client_emit(o, free, 0)
|
||||||
|
#define pw_client_emit_initialized(o) pw_client_emit(o, initialized, 0)
|
||||||
#define pw_client_emit_info_changed(o,i) pw_client_emit(o, info_changed, 0, i)
|
#define pw_client_emit_info_changed(o,i) pw_client_emit(o, info_changed, 0, i)
|
||||||
#define pw_client_emit_resource_added(o,r) pw_client_emit(o, resource_added, 0, r)
|
#define pw_client_emit_resource_added(o,r) pw_client_emit(o, resource_added, 0, r)
|
||||||
#define pw_client_emit_resource_impl(o,r) pw_client_emit(o, resource_impl, 0, r)
|
#define pw_client_emit_resource_impl(o,r) pw_client_emit(o, resource_impl, 0, r)
|
||||||
|
|
@ -280,6 +281,7 @@ struct pw_main_loop {
|
||||||
#define pw_device_emit(o,m,v,...) spa_hook_list_call(&o->listener_list, struct pw_device_events, m, v, ##__VA_ARGS__)
|
#define pw_device_emit(o,m,v,...) spa_hook_list_call(&o->listener_list, struct pw_device_events, m, v, ##__VA_ARGS__)
|
||||||
#define pw_device_emit_destroy(m) pw_device_emit(m, destroy, 0)
|
#define pw_device_emit_destroy(m) pw_device_emit(m, destroy, 0)
|
||||||
#define pw_device_emit_free(m) pw_device_emit(m, free, 0)
|
#define pw_device_emit_free(m) pw_device_emit(m, free, 0)
|
||||||
|
#define pw_device_emit_initialized(m) pw_device_emit(m, initialized, 0)
|
||||||
#define pw_device_emit_info_changed(n,i) pw_device_emit(n, info_changed, 0, i)
|
#define pw_device_emit_info_changed(n,i) pw_device_emit(n, info_changed, 0, i)
|
||||||
|
|
||||||
struct pw_device {
|
struct pw_device {
|
||||||
|
|
@ -307,6 +309,8 @@ struct pw_device {
|
||||||
|
|
||||||
#define pw_module_emit(o,m,v,...) spa_hook_list_call(&o->listener_list, struct pw_module_events, m, v, ##__VA_ARGS__)
|
#define pw_module_emit(o,m,v,...) spa_hook_list_call(&o->listener_list, struct pw_module_events, m, v, ##__VA_ARGS__)
|
||||||
#define pw_module_emit_destroy(m) pw_module_emit(m, destroy, 0)
|
#define pw_module_emit_destroy(m) pw_module_emit(m, destroy, 0)
|
||||||
|
#define pw_module_emit_free(m) pw_module_emit(m, free, 0)
|
||||||
|
#define pw_module_emit_initialized(m) pw_module_emit(m, initialized, 0)
|
||||||
#define pw_module_emit_registered(m) pw_module_emit(m, registered, 0)
|
#define pw_module_emit_registered(m) pw_module_emit(m, registered, 0)
|
||||||
|
|
||||||
struct pw_module {
|
struct pw_module {
|
||||||
|
|
@ -549,6 +553,7 @@ struct pw_port_implementation {
|
||||||
#define pw_port_emit(o,m,v,...) spa_hook_list_call(&o->listener_list, struct pw_port_events, m, v, ##__VA_ARGS__)
|
#define pw_port_emit(o,m,v,...) spa_hook_list_call(&o->listener_list, struct pw_port_events, m, v, ##__VA_ARGS__)
|
||||||
#define pw_port_emit_destroy(p) pw_port_emit(p, destroy, 0)
|
#define pw_port_emit_destroy(p) pw_port_emit(p, destroy, 0)
|
||||||
#define pw_port_emit_free(p) pw_port_emit(p, free, 0)
|
#define pw_port_emit_free(p) pw_port_emit(p, free, 0)
|
||||||
|
#define pw_port_emit_initialized(p) pw_port_emit(p, initialized, 0)
|
||||||
#define pw_port_emit_info_changed(p,i) pw_port_emit(p, info_changed, 0, i)
|
#define pw_port_emit_info_changed(p,i) pw_port_emit(p, info_changed, 0, i)
|
||||||
#define pw_port_emit_link_added(p,l) pw_port_emit(p, link_added, 0, l)
|
#define pw_port_emit_link_added(p,l) pw_port_emit(p, link_added, 0, l)
|
||||||
#define pw_port_emit_link_removed(p,l) pw_port_emit(p, link_removed, 0, l)
|
#define pw_port_emit_link_removed(p,l) pw_port_emit(p, link_removed, 0, l)
|
||||||
|
|
@ -631,6 +636,7 @@ struct pw_control_link {
|
||||||
#define pw_link_emit(o,m,v,...) spa_hook_list_call(&o->listener_list, struct pw_link_events, m, v, ##__VA_ARGS__)
|
#define pw_link_emit(o,m,v,...) spa_hook_list_call(&o->listener_list, struct pw_link_events, m, v, ##__VA_ARGS__)
|
||||||
#define pw_link_emit_destroy(l) pw_link_emit(l, destroy, 0)
|
#define pw_link_emit_destroy(l) pw_link_emit(l, destroy, 0)
|
||||||
#define pw_link_emit_free(l) pw_link_emit(l, free, 0)
|
#define pw_link_emit_free(l) pw_link_emit(l, free, 0)
|
||||||
|
#define pw_link_emit_initialized(l) pw_link_emit(l, initialized, 0)
|
||||||
#define pw_link_emit_info_changed(l,i) pw_link_emit(l, info_changed, 0, i)
|
#define pw_link_emit_info_changed(l,i) pw_link_emit(l, info_changed, 0, i)
|
||||||
#define pw_link_emit_state_changed(l,...) pw_link_emit(l, state_changed, 0, __VA_ARGS__)
|
#define pw_link_emit_state_changed(l,...) pw_link_emit(l, state_changed, 0, __VA_ARGS__)
|
||||||
#define pw_link_emit_port_unlinked(l,p) pw_link_emit(l, port_unlinked, 0, p)
|
#define pw_link_emit_port_unlinked(l,p) pw_link_emit(l, port_unlinked, 0, p)
|
||||||
|
|
@ -825,6 +831,8 @@ struct pw_filter {
|
||||||
#define pw_factory_emit(s,m,v,...) spa_hook_list_call(&s->listener_list, struct pw_factory_events, m, v, ##__VA_ARGS__)
|
#define pw_factory_emit(s,m,v,...) spa_hook_list_call(&s->listener_list, struct pw_factory_events, m, v, ##__VA_ARGS__)
|
||||||
|
|
||||||
#define pw_factory_emit_destroy(s) pw_factory_emit(s, destroy, 0)
|
#define pw_factory_emit_destroy(s) pw_factory_emit(s, destroy, 0)
|
||||||
|
#define pw_factory_emit_free(s) pw_factory_emit(s, free, 0)
|
||||||
|
#define pw_factory_emit_initialized(s) pw_factory_emit(s, initialized, 0)
|
||||||
|
|
||||||
struct pw_factory {
|
struct pw_factory {
|
||||||
struct pw_core *core; /**< the core */
|
struct pw_core *core; /**< the core */
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue