Client
Core API

Client interface. More...

## Files

file | client.h
| `pipewire/client.h`

## Data Structures

struct | pw_client_info
| The client information. More...
struct | pw_client_events
| Client events. More...
struct | pw_client_methods
| Client methods. More...
struct | pw_client

## Macros

#define | PW_TYPE_INTERFACE_Client PW_TYPE_INFO_INTERFACE_BASE "Client"
#define | PW_VERSION_CLIENT 3
#define | PW_ID_CLIENT 1
#define | PW_CLIENT_CHANGE_MASK_PROPS (1 << 0)
#define | PW_CLIENT_CHANGE_MASK_ALL ((1 << 1)-1)
#define | PW_CLIENT_EVENT_INFO 0
#define | PW_CLIENT_EVENT_PERMISSIONS 1
#define | PW_CLIENT_EVENT_NUM 2
#define | PW_VERSION_CLIENT_EVENTS 0
#define | PW_CLIENT_METHOD_ADD_LISTENER 0
#define | PW_CLIENT_METHOD_ERROR 1
#define | PW_CLIENT_METHOD_UPDATE_PROPERTIES 2
#define | PW_CLIENT_METHOD_GET_PERMISSIONS 3
#define | PW_CLIENT_METHOD_UPDATE_PERMISSIONS 4
#define | PW_CLIENT_METHOD_NUM 5
#define | PW_VERSION_CLIENT_METHODS 0
#define | pw_client_method(o, method, version, ...)
#define | pw_client_add_listener(c, ...) pw_client_method(c,add_listener,0,__VA_ARGS__)
#define | pw_client_error(c, ...) pw_client_method(c,error,0,__VA_ARGS__)
| Send an error to a client. More...
#define | pw_client_update_properties(c, ...) pw_client_method(c,update_properties,0,__VA_ARGS__)
| Update client properties. More...
#define | pw_client_get_permissions(c, ...) pw_client_method(c,get_permissions,0,__VA_ARGS__)
| Get client permissions. More...
#define | pw_client_update_permissions(c, ...) pw_client_method(c,update_permissions,0,__VA_ARGS__)
| Manage the permissions of the global objects for this client. More...

## Functions

struct pw_client_info * | pw_client_info_update (struct pw_client_info *info, const struct pw_client_info *update)
| Update an existing pw_client_info with update with reset. More...
struct pw_client_info * | pw_client_info_merge (struct pw_client_info *info, const struct pw_client_info *update, bool reset)
| Merge an existing pw_client_info with update. More...
void | pw_client_info_free (struct pw_client_info *info)
| Free a pw_client_info. More...

## Detailed Description

Client interface.

## Macro Definition Documentation

## PW_TYPE_INTERFACE_Client

#define PW_TYPE_INTERFACE_Client PW_TYPE_INFO_INTERFACE_BASE "Client"

Examples
  tutorial6.c.

## PW_VERSION_CLIENT

#define PW_VERSION_CLIENT 3

Examples
  tutorial6.c.

## PW_ID_CLIENT

#define PW_ID_CLIENT 1

## PW_CLIENT_CHANGE_MASK_PROPS

#define PW_CLIENT_CHANGE_MASK_PROPS (1 << 0)

## PW_CLIENT_CHANGE_MASK_ALL

#define PW_CLIENT_CHANGE_MASK_ALL ((1 << 1)-1)

## PW_CLIENT_EVENT_INFO

#define PW_CLIENT_EVENT_INFO 0

## PW_CLIENT_EVENT_PERMISSIONS

#define PW_CLIENT_EVENT_PERMISSIONS 1

## PW_CLIENT_EVENT_NUM

#define PW_CLIENT_EVENT_NUM 2

## PW_VERSION_CLIENT_EVENTS

#define PW_VERSION_CLIENT_EVENTS 0

Examples
  tutorial6.c.

## PW_CLIENT_METHOD_ADD_LISTENER

#define PW_CLIENT_METHOD_ADD_LISTENER 0

## PW_CLIENT_METHOD_ERROR

#define PW_CLIENT_METHOD_ERROR 1

## PW_CLIENT_METHOD_UPDATE_PROPERTIES

#define PW_CLIENT_METHOD_UPDATE_PROPERTIES 2

## PW_CLIENT_METHOD_GET_PERMISSIONS

#define PW_CLIENT_METHOD_GET_PERMISSIONS 3

## PW_CLIENT_METHOD_UPDATE_PERMISSIONS

#define PW_CLIENT_METHOD_UPDATE_PERMISSIONS 4

## PW_CLIENT_METHOD_NUM

#define PW_CLIENT_METHOD_NUM 5

## PW_VERSION_CLIENT_METHODS

#define PW_VERSION_CLIENT_METHODS 0

## pw_client_method

#define pw_client_method | ( |  | o,
|  |  | method,
|  |  | version,
|  |  | ...
| ) |  |

## pw_client_add_listener

#define pw_client_add_listener | ( |  | c,
|  |  | ...
| ) |  | pw_client_method(c,add_listener,0,__VA_ARGS__)

See also
  pw_client_methods.add_listener

Examples
  tutorial6.c.

## pw_client_error

#define pw_client_error | ( |  | c,
|  |  | ...
| ) |  | pw_client_method(c,error,0,__VA_ARGS__)

Send an error to a client.

Parameters

  id | the global id to report the error on
  res | an errno style error code
  message | an error string

See also
  pw_client_methods.error

## pw_client_update_properties

#define pw_client_update_properties | ( |  | c,
|  |  | ...
| ) |  | pw_client_method(c,update_properties,0,__VA_ARGS__)

Update client properties.

Parameters

  props | new properties

See also
  pw_client_methods.update_properties

## pw_client_get_permissions

#define pw_client_get_permissions | ( |  | c,
|  |  | ...
| ) |  | pw_client_method(c,get_permissions,0,__VA_ARGS__)

Get client permissions.

A permissions event will be emitted with the permissions.

Parameters

  index | the first index to query, 0 for first
  num | the maximum number of items to get

See also
  pw_client_methods.get_permissions

## pw_client_update_permissions

#define pw_client_update_permissions | ( |  | c,
|  |  | ...
| ) |  | pw_client_method(c,update_permissions,0,__VA_ARGS__)

Manage the permissions of the global objects for this client.

Update the permissions of the global objects using the provided array with permissions

Globals can use the default permissions or can have specific permissions assigned to them.

Parameters

  n_permissions | number of permissions
  permissions | array of permissions

See also
  pw_client_methods.update_permissions

Examples
  export-sink.c.

## Function Documentation

## pw_client_info_update()

struct pw_client_info* pw_client_info_update | ( | struct pw_client_info * | info,
|  | const struct pw_client_info * | update
| ) |  |

Update an existing pw_client_info with update with reset.

## pw_client_info_merge()

struct pw_client_info* pw_client_info_merge | ( | struct pw_client_info * | info,
|  | const struct pw_client_info * | update,
|  | bool | reset
| ) |  |

Merge an existing pw_client_info with update.

## pw_client_info_free()

void pw_client_info_free | ( | struct pw_client_info * | info | ) |

Free a pw_client_info.