summaryrefslogtreecommitdiff
path: root/src/tools/pipewire-cli.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/pipewire-cli.c')
-rw-r--r--src/tools/pipewire-cli.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/tools/pipewire-cli.c b/src/tools/pipewire-cli.c
index 1c6838d6..212717c8 100644
--- a/src/tools/pipewire-cli.c
+++ b/src/tools/pipewire-cli.c
@@ -32,6 +32,7 @@
#include <pipewire/command.h>
#include <pipewire/interfaces.h>
#include <pipewire/type.h>
+#include <pipewire/permission.h>
static const char WHITESPACE[] = " \t";
@@ -1164,15 +1165,15 @@ static bool do_port_params(struct data *data, const char *cmd, char *args, char
static bool do_permissions(struct data *data, const char *cmd, char *args, char **error)
{
struct remote_data *rd = data->current;
- char *a[2];
+ char *a[3];
int n;
uint32_t id;
struct global *global;
- struct spa_dict_item items[1];
+ struct pw_permission permissions[1];
- n = pw_split_ip(args, WHITESPACE, 2, a);
- if (n < 2) {
- asprintf(error, "%s <client-id> <permission>", cmd);
+ n = pw_split_ip(args, WHITESPACE, 3, a);
+ if (n < 3) {
+ asprintf(error, "%s <client-id> <object> <permission>", cmd);
return false;
}
@@ -1191,9 +1192,11 @@ static bool do_permissions(struct data *data, const char *cmd, char *args, char
return false;
}
- items[0] = SPA_DICT_ITEM_INIT(PW_CORE_PROXY_PERMISSIONS_GLOBAL, a[1]);
+
+ permissions[0] = PW_PERMISSION_INIT(atoi(a[1]), atoi(a[2]));
+
pw_client_proxy_update_permissions((struct pw_client_proxy*)global->proxy,
- &SPA_DICT_INIT(items, 1));
+ 1, permissions);
return true;
}