# PipeWire Client

struct WpClient

  The WpClient class allows accessing the properties and methods of a PipeWire client object (`struct pw_client`). A WpClient is constructed internally when a new client connects to PipeWire and it is made available through the WpObjectManager API.

void wp_client_send_error(WpClient *self, guint32 id, int res, const gchar *message)

  Send an error to the client.

  Parameters:

    - self -- the client

    - id -- the global id to report the error on

    - res -- an errno style error code

    - message -- the error message string

void wp_client_update_permissions(WpClient *self, guint n_perm, ...)

  Update client's permissions on a list of objects.

  An object id of `-1` can be used to set the default object permissions for this client

  Parameters:

    - self -- the client

    - n_perm -- the number of permissions specified in the variable arguments

    - ... -- n_perm pairs of guint32 numbers; the first number is the object id and the second is the permissions that this client should have on this object

void wp_client_update_permissions_array(WpClient *self, guint n_perm, const struct pw_permission *permissions)

  Update client's permissions on a list of objects.

  An object id of `-1` can be used to set the default object permissions for this client

  Parameters:

    - self -- the client

    - n_perm -- the number of permissions specified in the permissions array

    - permissions -- (array length=n_perm) (element-type pw_permission): an array of permissions per object id

void wp_client_update_properties(WpClient *self, WpProperties *updates)

  Updates the properties of self.

  This requires W and X permissions on the client.

  Parameters:

    - self -- the client

    - updates -- (transfer full): updates to apply to the properties of self; this does not need to include properties that have not changed

void wp_client_attach_permission_manager(WpClient *self, WpPermissionManager *pm)

  Attaches a permission manager in the client to handle permissions automatically.

  Parameters:

    - self -- the client

    - pm -- (transfer none) (nullable): the permission manager to attach, or NULL to detach the current permission manager.

WpPermissionManager *wp_client_get_permission_manager(WpClient *self)

  Gets the permission manager attached to this client, if any.

  Parameters:

    - self -- the client

  Returns:

    (transfer full) (nullable): the attached permission manager, or NULL if no permission manager is attached

WP_TYPE_CLIENT (wp_client_get_type ())

  The WpClient GType.