PipeWire: Client

PipeWire 1.4.2 |

Loading...
Searching...
No Matches
Files | Data Structures | Macros | Functions
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_CLIENT_PERM_MASK PW_PERM_RWXM
#define | PW_VERSION_CLIENT 3
#define | PW_API_CLIENT_IMPL static inline
#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

## 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.
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.
void | pw_client_info_free (struct pw_client_info *info)
| Free a pw_client_info.
PW_API_CLIENT_IMPL int | pw_client_add_listener (struct pw_client *object, struct spa_hook *listener, const struct pw_client_events *events, void *data)
PW_API_CLIENT_IMPL int | pw_client_error (struct pw_client *object, uint32_t id, int res, const char *message)
| Send an error to a client.
PW_API_CLIENT_IMPL int | pw_client_update_properties (struct pw_client *object, const struct spa_dict *props)
| Update client properties.
PW_API_CLIENT_IMPL int | pw_client_get_permissions (struct pw_client *object, uint32_t index, uint32_t num)
| Get client permissions.
PW_API_CLIENT_IMPL int | pw_client_update_permissions (struct pw_client *object, uint32_t n_permissions, const struct pw_permission *permissions)
| Manage the permissions of the global objects for this client.

## Detailed Description

Client interface.

## Macro Definition Documentation

## ◆ PW_TYPE_INTERFACE_Client

#define PW_TYPE_INTERFACE_Client PW_TYPE_INFO_INTERFACE_BASE "Client"

## ◆ PW_CLIENT_PERM_MASK

#define PW_CLIENT_PERM_MASK PW_PERM_RWXM

## ◆ PW_VERSION_CLIENT

#define PW_VERSION_CLIENT 3

## ◆ PW_API_CLIENT_IMPL

#define PW_API_CLIENT_IMPL static inline

## ◆ 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

## ◆ 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

## 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.

## ◆ pw_client_add_listener()

PW_API_CLIENT_IMPL int pw_client_add_listener | ( | struct pw_client * | object,
|  | struct spa_hook * | listener,
|  | const struct pw_client_events * | events,
|  | void * | data )

See also
  pw_client_methods.add_listener

Examples
  tutorial6.c.

## ◆ pw_client_error()

PW_API_CLIENT_IMPL int pw_client_error | ( | struct pw_client * | object,
|  | uint32_t | id,
|  | int | res,
|  | const char * | message )

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

This requires W and X permissions on the client.

See also
  pw_client_methods.error

## ◆ pw_client_update_properties()

PW_API_CLIENT_IMPL int pw_client_update_properties | ( | struct pw_client * | object,
|  | const struct spa_dict * | props )

Update client properties.

Parameters

  props | new properties

This requires W and X permissions on the client.

See also
  pw_client_methods.update_properties

## ◆ pw_client_get_permissions()

PW_API_CLIENT_IMPL int pw_client_get_permissions | ( | struct pw_client * | object,
|  | uint32_t | index,
|  | uint32_t | num )

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

This requires W and X permissions on the client.

See also
  pw_client_methods.get_permissions

## ◆ pw_client_update_permissions()

PW_API_CLIENT_IMPL int pw_client_update_permissions | ( | struct pw_client * | object,
|  | uint32_t | n_permissions,
|  | const struct pw_permission * | permissions )

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

This requires W and X permissions on the client.

See also
  pw_client_methods.update_permissions

Examples
  export-sink.c.