PipeWire 0.3.77
Loading...
Searching...
No Matches
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_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_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. More...
 
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. 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_CLIENT_PERM_MASK

#define PW_CLIENT_PERM_MASK   PW_PERM_RWXM

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

◆ pw_client_error

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

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

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

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

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

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

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.