Add link introspection

This commit is contained in:
Wim Taymans 2016-12-02 16:06:16 +01:00
parent b969623ec8
commit e6f45a7686
8 changed files with 156 additions and 39 deletions

View file

@ -277,6 +277,8 @@ pinos_core_add_global (PinosCore *core,
PinosBindFunc bind)
{
PinosGlobal *global;
PinosResource *registry;
PinosMessageNotifyGlobal ng;
global = calloc (1, sizeof (PinosGlobal));
global->core = core;
@ -294,6 +296,14 @@ pinos_core_add_global (PinosCore *core,
pinos_log_debug ("global %p: new %u", global, global->id);
ng.id = global->id;
ng.type = spa_id_map_get_uri (core->uri.map, global->type);
spa_list_for_each (registry, &core->registry_resource_list, link) {
pinos_resource_send_message (registry,
PINOS_MESSAGE_NOTIFY_GLOBAL,
&ng,
true);
}
return global;
}
@ -313,6 +323,8 @@ void
pinos_global_destroy (PinosGlobal *global)
{
PinosCore *core = global->core;
PinosResource *registry;
PinosMessageNotifyGlobalRemove ng;
pinos_log_debug ("global %p: destroy", global);
pinos_signal_emit (&global->destroy_signal, global);
@ -322,6 +334,14 @@ pinos_global_destroy (PinosGlobal *global)
spa_list_remove (&global->link);
pinos_signal_emit (&core->global_removed, core, global);
ng.id = global->id;
spa_list_for_each (registry, &core->registry_resource_list, link) {
pinos_resource_send_message (registry,
PINOS_MESSAGE_NOTIFY_GLOBAL_REMOVE,
&ng,
true);
}
pinos_main_loop_defer (core->main_loop,
global,
SPA_RESULT_WAIT_SYNC,