From 04c153d410f0aabcc07281800b148f29572bfff9 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 13 May 2019 17:24:33 +0200 Subject: [PATCH] global: add permissions_changed event --- src/pipewire/global.c | 2 ++ src/pipewire/global.h | 5 +++++ src/pipewire/private.h | 1 + 3 files changed, 8 insertions(+) diff --git a/src/pipewire/global.c b/src/pipewire/global.c index afd3b8b16..2017db7fa 100644 --- a/src/pipewire/global.c +++ b/src/pipewire/global.c @@ -291,6 +291,8 @@ int pw_global_update_permissions(struct pw_global *global, struct pw_client *cli struct pw_core *core = global->core; struct pw_resource *resource, *t; + pw_global_emit_permissions_changed(global, client, old_permissions, new_permissions); + spa_list_for_each(resource, &core->registry_resource_list, link) { if (resource->client != client) continue; diff --git a/src/pipewire/global.h b/src/pipewire/global.h index 9aff65f65..bbaa9fa6c 100644 --- a/src/pipewire/global.h +++ b/src/pipewire/global.h @@ -75,6 +75,11 @@ struct pw_global_events { void (*destroy) (void *data); /** The global is freed */ void (*free) (void *data); + /** The permissions changed for a client */ + void (*permissions_changed) (void *data, + struct pw_client *client, + uint32_t old_permissions, + uint32_t new_permissions); }; /** Create a new global object */ diff --git a/src/pipewire/private.h b/src/pipewire/private.h index 87fed792f..aad403f53 100644 --- a/src/pipewire/private.h +++ b/src/pipewire/private.h @@ -136,6 +136,7 @@ struct pw_client { #define pw_global_emit_registering(g) pw_global_emit(g, registering, 0) #define pw_global_emit_destroy(g) pw_global_emit(g, destroy, 0) #define pw_global_emit_free(g) pw_global_emit(g, free, 0) +#define pw_global_emit_permissions_changed(g,...) pw_global_emit(g, permissions_changed, 0, __VA_ARGS__) struct pw_global { struct pw_core *core; /**< the core */