PipeWire 1.4.1
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Client

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_infopw_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_infopw_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"
Examples
tutorial6.c.

◆ PW_CLIENT_PERM_MASK

#define PW_CLIENT_PERM_MASK   PW_PERM_RWXM

◆ PW_VERSION_CLIENT

#define PW_VERSION_CLIENT   3
Examples
tutorial6.c.

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

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 )

◆ 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
idthe global id to report the error on
resan errno style error code
messagean 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
propsnew 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
indexthe first index to query, 0 for first
numthe 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_permissionsnumber of permissions
permissionsarray of permissions

This requires W and X permissions on the client.

See also
pw_client_methods.update_permissions
Examples
export-sink.c.