PipeWire 1.2.7
Loading...
Searching...
No Matches
Session Manager

Session manager interface More...

Files

file  session-manager.h
 pipewire/extensions/session-manager.h
 
file  impl-interfaces.h
 pipewire/extensions/session-manager/impl-interfaces.h
 
file  interfaces.h
 pipewire/extensions/session-manager/interfaces.h
 
file  introspect.h
 pipewire/extensions/session-manager/introspect.h
 
file  introspect-funcs.h
 pipewire/extensions/session-manager/introspect-funcs.h
 
file  keys.h
 pipewire/extensions/session-manager/keys.h
 

Data Structures

struct  pw_client_endpoint_events
 
struct  pw_client_endpoint_methods
 
struct  pw_client_session_events
 
struct  pw_client_session_methods
 
struct  pw_session_events
 
struct  pw_session_methods
 
struct  pw_endpoint_events
 
struct  pw_endpoint_methods
 
struct  pw_endpoint_stream_events
 
struct  pw_endpoint_stream_methods
 
struct  pw_endpoint_link_events
 
struct  pw_endpoint_link_methods
 
struct  pw_session_info
 
struct  pw_endpoint_info
 
struct  pw_endpoint_stream_info
 
struct  pw_endpoint_link_info
 
struct  pw_client_endpoint
 
struct  pw_client_session
 
struct  pw_session
 
struct  pw_endpoint
 
struct  pw_endpoint_stream
 
struct  pw_endpoint_link
 

Enumerations

enum  pw_endpoint_link_state { PW_ENDPOINT_LINK_STATE_ERROR = -1 , PW_ENDPOINT_LINK_STATE_PREPARING , PW_ENDPOINT_LINK_STATE_INACTIVE , PW_ENDPOINT_LINK_STATE_ACTIVE }
 

Macros

#define PW_TYPE_INTERFACE_ClientEndpoint   PW_TYPE_INFO_INTERFACE_BASE "ClientEndpoint"
 
#define PW_VERSION_CLIENT_ENDPOINT   0
 
#define PW_CLIENT_ENDPOINT_EVENT_SET_SESSION_ID   0
 
#define PW_CLIENT_ENDPOINT_EVENT_SET_PARAM   1
 
#define PW_CLIENT_ENDPOINT_EVENT_STREAM_SET_PARAM   2
 
#define PW_CLIENT_ENDPOINT_EVENT_CREATE_LINK   3
 
#define PW_CLIENT_ENDPOINT_EVENT_NUM   4
 
#define PW_VERSION_CLIENT_ENDPOINT_EVENTS   0
 
#define PW_CLIENT_ENDPOINT_METHOD_ADD_LISTENER   0
 
#define PW_CLIENT_ENDPOINT_METHOD_UPDATE   1
 
#define PW_CLIENT_ENDPOINT_METHOD_STREAM_UPDATE   2
 
#define PW_CLIENT_ENDPOINT_METHOD_NUM   3
 
#define PW_VERSION_CLIENT_ENDPOINT_METHODS   0
 
#define pw_client_endpoint_method(o, method, version, ...)
 
#define pw_client_endpoint_add_listener(o, ...)   pw_client_endpoint_method(o,add_listener,0,__VA_ARGS__)
 
#define pw_client_endpoint_update(o, ...)   pw_client_endpoint_method(o,update,0,__VA_ARGS__)
 Update endpoint information.
 
#define pw_client_endpoint_stream_update(o, ...)   pw_client_endpoint_method(o,stream_update,0,__VA_ARGS__)
 Update stream information.
 
#define PW_TYPE_INTERFACE_ClientSession   PW_TYPE_INFO_INTERFACE_BASE "ClientSession"
 
#define PW_VERSION_CLIENT_SESSION   0
 
#define PW_CLIENT_SESSION_EVENT_SET_PARAM   0
 
#define PW_CLIENT_SESSION_EVENT_LINK_SET_PARAM   1
 
#define PW_CLIENT_SESSION_EVENT_LINK_REQUEST_STATE   2
 
#define PW_CLIENT_SESSION_EVENT_NUM   3
 
#define PW_VERSION_CLIENT_SESSION_EVENTS   0
 
#define PW_CLIENT_SESSION_METHOD_ADD_LISTENER   0
 
#define PW_CLIENT_SESSION_METHOD_UPDATE   1
 
#define PW_CLIENT_SESSION_METHOD_LINK_UPDATE   2
 
#define PW_CLIENT_SESSION_METHOD_NUM   3
 
#define PW_VERSION_CLIENT_SESSION_METHODS   0
 
#define pw_client_session_method(o, method, version, ...)
 
#define pw_client_session_add_listener(o, ...)   pw_client_session_method(o,add_listener,0,__VA_ARGS__)
 
#define pw_client_session_update(o, ...)   pw_client_session_method(o,update,0,__VA_ARGS__)
 Update session information.
 
#define pw_client_session_link_update(o, ...)   pw_client_session_method(o,link_update,0,__VA_ARGS__)
 Update link information.
 
#define PW_TYPE_INTERFACE_Session   PW_TYPE_INFO_INTERFACE_BASE "Session"
 
#define PW_SESSION_PERM_MASK   PW_PERM_RWX
 
#define PW_VERSION_SESSION   0
 
#define PW_TYPE_INTERFACE_Endpoint   PW_TYPE_INFO_INTERFACE_BASE "Endpoint"
 
#define PW_ENDPOINT_PERM_MASK   PW_PERM_RWX
 
#define PW_VERSION_ENDPOINT   0
 
#define PW_TYPE_INTERFACE_EndpointStream   PW_TYPE_INFO_INTERFACE_BASE "EndpointStream"
 
#define PW_ENDPOINT_STREAM_PERM_MASK   PW_PERM_RWX
 
#define PW_VERSION_ENDPOINT_STREAM   0
 
#define PW_TYPE_INTERFACE_EndpointLink   PW_TYPE_INFO_INTERFACE_BASE "EndpointLink"
 
#define PW_ENDPOINT_LINK_PERM_MASK   PW_PERM_RWX
 
#define PW_VERSION_ENDPOINT_LINK   0
 
#define PW_SESSION_EVENT_INFO   0
 
#define PW_SESSION_EVENT_PARAM   1
 
#define PW_SESSION_EVENT_NUM   2
 
#define PW_VERSION_SESSION_EVENTS   0
 
#define PW_SESSION_METHOD_ADD_LISTENER   0
 
#define PW_SESSION_METHOD_SUBSCRIBE_PARAMS   1
 
#define PW_SESSION_METHOD_ENUM_PARAMS   2
 
#define PW_SESSION_METHOD_SET_PARAM   3
 
#define PW_SESSION_METHOD_CREATE_LINK   4
 
#define PW_SESSION_METHOD_NUM   5
 
#define PW_VERSION_SESSION_METHODS   0
 
#define pw_session_method(o, method, version, ...)
 
#define pw_session_add_listener(c, ...)   pw_session_method(c,add_listener,0,__VA_ARGS__)
 
#define pw_session_subscribe_params(c, ...)   pw_session_method(c,subscribe_params,0,__VA_ARGS__)
 Subscribe to parameter changes.
 
#define pw_session_enum_params(c, ...)   pw_session_method(c,enum_params,0,__VA_ARGS__)
 Enumerate session parameters.
 
#define pw_session_set_param(c, ...)   pw_session_method(c,set_param,0,__VA_ARGS__)
 Set a parameter on the session.
 
#define PW_ENDPOINT_EVENT_INFO   0
 
#define PW_ENDPOINT_EVENT_PARAM   1
 
#define PW_ENDPOINT_EVENT_NUM   2
 
#define PW_VERSION_ENDPOINT_EVENTS   0
 
#define PW_ENDPOINT_METHOD_ADD_LISTENER   0
 
#define PW_ENDPOINT_METHOD_SUBSCRIBE_PARAMS   1
 
#define PW_ENDPOINT_METHOD_ENUM_PARAMS   2
 
#define PW_ENDPOINT_METHOD_SET_PARAM   3
 
#define PW_ENDPOINT_METHOD_CREATE_LINK   4
 
#define PW_ENDPOINT_METHOD_NUM   5
 
#define PW_VERSION_ENDPOINT_METHODS   0
 
#define pw_endpoint_method(o, method, version, ...)
 
#define pw_endpoint_add_listener(c, ...)   pw_endpoint_method(c,add_listener,0,__VA_ARGS__)
 
#define pw_endpoint_subscribe_params(c, ...)   pw_endpoint_method(c,subscribe_params,0,__VA_ARGS__)
 Subscribe to parameter changes.
 
#define pw_endpoint_enum_params(c, ...)   pw_endpoint_method(c,enum_params,0,__VA_ARGS__)
 Enumerate endpoint parameters.
 
#define pw_endpoint_set_param(c, ...)   pw_endpoint_method(c,set_param,0,__VA_ARGS__)
 Set a parameter on the endpoint.
 
#define pw_endpoint_create_link(c, ...)   pw_endpoint_method(c,create_link,0,__VA_ARGS__)
 Create a link.
 
#define PW_ENDPOINT_STREAM_EVENT_INFO   0
 
#define PW_ENDPOINT_STREAM_EVENT_PARAM   1
 
#define PW_ENDPOINT_STREAM_EVENT_NUM   2
 
#define PW_VERSION_ENDPOINT_STREAM_EVENTS   0
 
#define PW_ENDPOINT_STREAM_METHOD_ADD_LISTENER   0
 
#define PW_ENDPOINT_STREAM_METHOD_SUBSCRIBE_PARAMS   1
 
#define PW_ENDPOINT_STREAM_METHOD_ENUM_PARAMS   2
 
#define PW_ENDPOINT_STREAM_METHOD_SET_PARAM   3
 
#define PW_ENDPOINT_STREAM_METHOD_NUM   4
 
#define PW_VERSION_ENDPOINT_STREAM_METHODS   0
 
#define pw_endpoint_stream_method(o, method, version, ...)
 
#define pw_endpoint_stream_add_listener(c, ...)   pw_endpoint_stream_method(c,add_listener,0,__VA_ARGS__)
 
#define pw_endpoint_stream_subscribe_params(c, ...)   pw_endpoint_stream_method(c,subscribe_params,0,__VA_ARGS__)
 Subscribe to parameter changes.
 
#define pw_endpoint_stream_enum_params(c, ...)   pw_endpoint_stream_method(c,enum_params,0,__VA_ARGS__)
 Enumerate stream parameters.
 
#define pw_endpoint_stream_set_param(c, ...)   pw_endpoint_stream_method(c,set_param,0,__VA_ARGS__)
 Set a parameter on the stream.
 
#define PW_ENDPOINT_LINK_EVENT_INFO   0
 
#define PW_ENDPOINT_LINK_EVENT_PARAM   1
 
#define PW_ENDPOINT_LINK_EVENT_NUM   2
 
#define PW_VERSION_ENDPOINT_LINK_EVENTS   0
 
#define PW_ENDPOINT_LINK_METHOD_ADD_LISTENER   0
 
#define PW_ENDPOINT_LINK_METHOD_SUBSCRIBE_PARAMS   1
 
#define PW_ENDPOINT_LINK_METHOD_ENUM_PARAMS   2
 
#define PW_ENDPOINT_LINK_METHOD_SET_PARAM   3
 
#define PW_ENDPOINT_LINK_METHOD_REQUEST_STATE   4
 
#define PW_ENDPOINT_LINK_METHOD_DESTROY   5
 
#define PW_ENDPOINT_LINK_METHOD_NUM   6
 
#define PW_VERSION_ENDPOINT_LINK_METHODS   0
 
#define pw_endpoint_link_method(o, method, version, ...)
 
#define pw_endpoint_link_add_listener(c, ...)   pw_endpoint_link_method(c,add_listener,0,__VA_ARGS__)
 
#define pw_endpoint_link_subscribe_params(c, ...)   pw_endpoint_link_method(c,subscribe_params,0,__VA_ARGS__)
 Subscribe to parameter changes.
 
#define pw_endpoint_link_enum_params(c, ...)   pw_endpoint_link_method(c,enum_params,0,__VA_ARGS__)
 Enumerate link parameters.
 
#define pw_endpoint_link_set_param(c, ...)   pw_endpoint_link_method(c,set_param,0,__VA_ARGS__)
 Set a parameter on the link.
 
#define pw_endpoint_link_request_state(c, ...)   pw_endpoint_link_method(c,request_state,0,__VA_ARGS__)
 Request a state on the link.
 
#define PW_VERSION_SESSION_INFO   0
 
#define PW_SESSION_CHANGE_MASK_PROPS   (1 << 0)
 
#define PW_SESSION_CHANGE_MASK_PARAMS   (1 << 1)
 
#define PW_SESSION_CHANGE_MASK_ALL   ((1 << 2)-1)
 
#define PW_VERSION_ENDPOINT_INFO   0
 
#define PW_ENDPOINT_FLAG_PROVIDES_SESSION   (1 << 0)
 
#define PW_ENDPOINT_CHANGE_MASK_STREAMS   (1 << 0)
 
#define PW_ENDPOINT_CHANGE_MASK_SESSION   (1 << 1)
 
#define PW_ENDPOINT_CHANGE_MASK_PROPS   (1 << 2)
 
#define PW_ENDPOINT_CHANGE_MASK_PARAMS   (1 << 3)
 
#define PW_ENDPOINT_CHANGE_MASK_ALL   ((1 << 4)-1)
 
#define PW_VERSION_ENDPOINT_STREAM_INFO   0
 
#define PW_ENDPOINT_STREAM_CHANGE_MASK_LINK_PARAMS   (1 << 0)
 
#define PW_ENDPOINT_STREAM_CHANGE_MASK_PROPS   (1 << 1)
 
#define PW_ENDPOINT_STREAM_CHANGE_MASK_PARAMS   (1 << 2)
 
#define PW_ENDPOINT_STREAM_CHANGE_MASK_ALL   ((1 << 3)-1)
 
#define PW_VERSION_ENDPOINT_LINK_INFO   0
 
#define PW_ENDPOINT_LINK_CHANGE_MASK_STATE   (1 << 0)
 
#define PW_ENDPOINT_LINK_CHANGE_MASK_PROPS   (1 << 1)
 
#define PW_ENDPOINT_LINK_CHANGE_MASK_PARAMS   (1 << 2)
 
#define PW_ENDPOINT_LINK_CHANGE_MASK_ALL   ((1 << 3)-1)
 
#define PW_KEY_SESSION_ID   "session.id"
 id of a session manager
 
#define PW_KEY_ENDPOINT_ID   "endpoint.id"
 id of an endpoint
 
#define PW_KEY_ENDPOINT_NAME   "endpoint.name"
 the name of an endpoint
 
#define PW_KEY_ENDPOINT_MONITOR   "endpoint.monitor"
 endpoint is monitor of given endpoint
 
#define PW_KEY_ENDPOINT_CLIENT_ID   "endpoint.client.id"
 client of the endpoint
 
#define PW_KEY_ENDPOINT_ICON_NAME   "endpoint.icon-name"
 an XDG icon name for the device.
 
#define PW_KEY_ENDPOINT_AUTOCONNECT   "endpoint.autoconnect"
 try to automatically connect this endpoint.
 
#define PW_KEY_ENDPOINT_TARGET   "endpoint.target"
 the suggested target to connect to
 
#define PW_KEY_ENDPOINT_STREAM_ID   "endpoint-stream.id"
 id of a stream
 
#define PW_KEY_ENDPOINT_STREAM_NAME   "endpoint-stream.name"
 unique name of a stream
 
#define PW_KEY_ENDPOINT_STREAM_DESCRIPTION   "endpoint-stream.description"
 description of a stream
 
#define PW_KEY_ENDPOINT_LINK_OUTPUT_ENDPOINT   "endpoint-link.output.endpoint"
 output endpoint of link
 
#define PW_KEY_ENDPOINT_LINK_OUTPUT_STREAM   "endpoint-link.output.stream"
 output stream of link
 
#define PW_KEY_ENDPOINT_LINK_INPUT_ENDPOINT   "endpoint-link.input.endpoint"
 input endpoint of link
 
#define PW_KEY_ENDPOINT_LINK_INPUT_STREAM   "endpoint-link.input.stream"
 input stream of link
 

Functions

static struct pw_session_infopw_session_info_update (struct pw_session_info *info, const struct pw_session_info *update)
 
static void pw_session_info_free (struct pw_session_info *info)
 
static struct pw_endpoint_infopw_endpoint_info_update (struct pw_endpoint_info *info, const struct pw_endpoint_info *update)
 
static void pw_endpoint_info_free (struct pw_endpoint_info *info)
 
static struct pw_endpoint_stream_infopw_endpoint_stream_info_update (struct pw_endpoint_stream_info *info, const struct pw_endpoint_stream_info *update)
 
static void pw_endpoint_stream_info_free (struct pw_endpoint_stream_info *info)
 
static struct pw_endpoint_link_infopw_endpoint_link_info_update (struct pw_endpoint_link_info *info, const struct pw_endpoint_link_info *update)
 
static void pw_endpoint_link_info_free (struct pw_endpoint_link_info *info)
 

Variables

int(* pw_client_endpoint_methods::update )(void *object, #define PW_CLIENT_ENDPOINT_UPDATE_PARAMS #define PW_CLIENT_ENDPOINT_UPDATE_INFO uint32_t change_mask, uint32_t n_params, const struct spa_pod **params, const struct pw_endpoint_info *info)
 Update endpoint information.
 
int(* pw_client_endpoint_methods::stream_update )(void *object, uint32_t stream_id, #define PW_CLIENT_ENDPOINT_STREAM_UPDATE_PARAMS #define PW_CLIENT_ENDPOINT_STREAM_UPDATE_INFO #define PW_CLIENT_ENDPOINT_STREAM_UPDATE_DESTROYED uint32_t change_mask, uint32_t n_params, const struct spa_pod **params, const struct pw_endpoint_stream_info *info)
 Update stream information.
 
int(* pw_client_session_methods::update )(void *object, #define PW_CLIENT_SESSION_UPDATE_PARAMS #define PW_CLIENT_SESSION_UPDATE_INFO uint32_t change_mask, uint32_t n_params, const struct spa_pod **params, const struct pw_session_info *info)
 Update session information.
 
int(* pw_client_session_methods::link_update )(void *object, uint32_t link_id, #define PW_CLIENT_SESSION_LINK_UPDATE_PARAMS #define PW_CLIENT_SESSION_LINK_UPDATE_INFO #define PW_CLIENT_SESSION_LINK_UPDATE_DESTROYED uint32_t change_mask, uint32_t n_params, const struct spa_pod **params, const struct pw_endpoint_link_info *info)
 Update link information.
 

Detailed Description

Session manager interface

Enumeration Type Documentation

◆ pw_endpoint_link_state

Enumerator
PW_ENDPOINT_LINK_STATE_ERROR 
PW_ENDPOINT_LINK_STATE_PREPARING 
PW_ENDPOINT_LINK_STATE_INACTIVE 
PW_ENDPOINT_LINK_STATE_ACTIVE 

Macro Definition Documentation

◆ PW_TYPE_INTERFACE_ClientEndpoint

#define PW_TYPE_INTERFACE_ClientEndpoint   PW_TYPE_INFO_INTERFACE_BASE "ClientEndpoint"

◆ PW_VERSION_CLIENT_ENDPOINT

#define PW_VERSION_CLIENT_ENDPOINT   0

◆ PW_CLIENT_ENDPOINT_EVENT_SET_SESSION_ID

#define PW_CLIENT_ENDPOINT_EVENT_SET_SESSION_ID   0

◆ PW_CLIENT_ENDPOINT_EVENT_SET_PARAM

#define PW_CLIENT_ENDPOINT_EVENT_SET_PARAM   1

◆ PW_CLIENT_ENDPOINT_EVENT_STREAM_SET_PARAM

#define PW_CLIENT_ENDPOINT_EVENT_STREAM_SET_PARAM   2

◆ PW_CLIENT_ENDPOINT_EVENT_CREATE_LINK

#define PW_CLIENT_ENDPOINT_EVENT_CREATE_LINK   3

◆ PW_CLIENT_ENDPOINT_EVENT_NUM

#define PW_CLIENT_ENDPOINT_EVENT_NUM   4

◆ PW_VERSION_CLIENT_ENDPOINT_EVENTS

#define PW_VERSION_CLIENT_ENDPOINT_EVENTS   0

◆ PW_CLIENT_ENDPOINT_METHOD_ADD_LISTENER

#define PW_CLIENT_ENDPOINT_METHOD_ADD_LISTENER   0

◆ PW_CLIENT_ENDPOINT_METHOD_UPDATE

#define PW_CLIENT_ENDPOINT_METHOD_UPDATE   1

◆ PW_CLIENT_ENDPOINT_METHOD_STREAM_UPDATE

#define PW_CLIENT_ENDPOINT_METHOD_STREAM_UPDATE   2

◆ PW_CLIENT_ENDPOINT_METHOD_NUM

#define PW_CLIENT_ENDPOINT_METHOD_NUM   3

◆ PW_VERSION_CLIENT_ENDPOINT_METHODS

#define PW_VERSION_CLIENT_ENDPOINT_METHODS   0

◆ pw_client_endpoint_method

#define pw_client_endpoint_method ( o,
method,
version,
... )

◆ pw_client_endpoint_add_listener

#define pw_client_endpoint_add_listener ( o,
... )   pw_client_endpoint_method(o,add_listener,0,__VA_ARGS__)

◆ pw_client_endpoint_update

#define pw_client_endpoint_update ( o,
... )   pw_client_endpoint_method(o,update,0,__VA_ARGS__)

Update endpoint information.

See also
pw_client_endpoint_methods.update

◆ pw_client_endpoint_stream_update

#define pw_client_endpoint_stream_update ( o,
... )   pw_client_endpoint_method(o,stream_update,0,__VA_ARGS__)

Update stream information.

See also
pw_client_endpoint_methods.stream_update

◆ PW_TYPE_INTERFACE_ClientSession

#define PW_TYPE_INTERFACE_ClientSession   PW_TYPE_INFO_INTERFACE_BASE "ClientSession"

◆ PW_VERSION_CLIENT_SESSION

#define PW_VERSION_CLIENT_SESSION   0

◆ PW_CLIENT_SESSION_EVENT_SET_PARAM

#define PW_CLIENT_SESSION_EVENT_SET_PARAM   0

◆ PW_CLIENT_SESSION_EVENT_LINK_SET_PARAM

#define PW_CLIENT_SESSION_EVENT_LINK_SET_PARAM   1

◆ PW_CLIENT_SESSION_EVENT_LINK_REQUEST_STATE

#define PW_CLIENT_SESSION_EVENT_LINK_REQUEST_STATE   2

◆ PW_CLIENT_SESSION_EVENT_NUM

#define PW_CLIENT_SESSION_EVENT_NUM   3

◆ PW_VERSION_CLIENT_SESSION_EVENTS

#define PW_VERSION_CLIENT_SESSION_EVENTS   0

◆ PW_CLIENT_SESSION_METHOD_ADD_LISTENER

#define PW_CLIENT_SESSION_METHOD_ADD_LISTENER   0

◆ PW_CLIENT_SESSION_METHOD_UPDATE

#define PW_CLIENT_SESSION_METHOD_UPDATE   1

◆ PW_CLIENT_SESSION_METHOD_LINK_UPDATE

#define PW_CLIENT_SESSION_METHOD_LINK_UPDATE   2

◆ PW_CLIENT_SESSION_METHOD_NUM

#define PW_CLIENT_SESSION_METHOD_NUM   3

◆ PW_VERSION_CLIENT_SESSION_METHODS

#define PW_VERSION_CLIENT_SESSION_METHODS   0

◆ pw_client_session_method

#define pw_client_session_method ( o,
method,
version,
... )

◆ pw_client_session_add_listener

#define pw_client_session_add_listener ( o,
... )   pw_client_session_method(o,add_listener,0,__VA_ARGS__)

◆ pw_client_session_update

#define pw_client_session_update ( o,
... )   pw_client_session_method(o,update,0,__VA_ARGS__)

Update session information.

See also
pw_client_session_methods.update

◆ pw_client_session_link_update

#define pw_client_session_link_update ( o,
... )   pw_client_session_method(o,link_update,0,__VA_ARGS__)

Update link information.

See also
pw_client_session_methods.link_update

◆ PW_TYPE_INTERFACE_Session

#define PW_TYPE_INTERFACE_Session   PW_TYPE_INFO_INTERFACE_BASE "Session"

◆ PW_SESSION_PERM_MASK

#define PW_SESSION_PERM_MASK   PW_PERM_RWX

◆ PW_VERSION_SESSION

#define PW_VERSION_SESSION   0

◆ PW_TYPE_INTERFACE_Endpoint

#define PW_TYPE_INTERFACE_Endpoint   PW_TYPE_INFO_INTERFACE_BASE "Endpoint"

◆ PW_ENDPOINT_PERM_MASK

#define PW_ENDPOINT_PERM_MASK   PW_PERM_RWX

◆ PW_VERSION_ENDPOINT

#define PW_VERSION_ENDPOINT   0

◆ PW_TYPE_INTERFACE_EndpointStream

#define PW_TYPE_INTERFACE_EndpointStream   PW_TYPE_INFO_INTERFACE_BASE "EndpointStream"

◆ PW_ENDPOINT_STREAM_PERM_MASK

#define PW_ENDPOINT_STREAM_PERM_MASK   PW_PERM_RWX

◆ PW_VERSION_ENDPOINT_STREAM

#define PW_VERSION_ENDPOINT_STREAM   0

◆ PW_TYPE_INTERFACE_EndpointLink

#define PW_TYPE_INTERFACE_EndpointLink   PW_TYPE_INFO_INTERFACE_BASE "EndpointLink"

◆ PW_ENDPOINT_LINK_PERM_MASK

#define PW_ENDPOINT_LINK_PERM_MASK   PW_PERM_RWX

◆ PW_VERSION_ENDPOINT_LINK

#define PW_VERSION_ENDPOINT_LINK   0

◆ PW_SESSION_EVENT_INFO

#define PW_SESSION_EVENT_INFO   0

◆ PW_SESSION_EVENT_PARAM

#define PW_SESSION_EVENT_PARAM   1

◆ PW_SESSION_EVENT_NUM

#define PW_SESSION_EVENT_NUM   2

◆ PW_VERSION_SESSION_EVENTS

#define PW_VERSION_SESSION_EVENTS   0

◆ PW_SESSION_METHOD_ADD_LISTENER

#define PW_SESSION_METHOD_ADD_LISTENER   0

◆ PW_SESSION_METHOD_SUBSCRIBE_PARAMS

#define PW_SESSION_METHOD_SUBSCRIBE_PARAMS   1

◆ PW_SESSION_METHOD_ENUM_PARAMS

#define PW_SESSION_METHOD_ENUM_PARAMS   2

◆ PW_SESSION_METHOD_SET_PARAM

#define PW_SESSION_METHOD_SET_PARAM   3

◆ PW_SESSION_METHOD_CREATE_LINK

#define PW_SESSION_METHOD_CREATE_LINK   4

◆ PW_SESSION_METHOD_NUM

#define PW_SESSION_METHOD_NUM   5

◆ PW_VERSION_SESSION_METHODS

#define PW_VERSION_SESSION_METHODS   0

◆ pw_session_method

#define pw_session_method ( o,
method,
version,
... )

◆ pw_session_add_listener

#define pw_session_add_listener ( c,
... )   pw_session_method(c,add_listener,0,__VA_ARGS__)

◆ pw_session_subscribe_params

#define pw_session_subscribe_params ( c,
... )   pw_session_method(c,subscribe_params,0,__VA_ARGS__)

Subscribe to parameter changes.

Automatically emit param events for the given ids when they are changed.

Parameters
idsan array of param ids
n_idsthe number of ids in ids

This requires X permissions.

See also
pw_session_methods.subscribe_params

◆ pw_session_enum_params

#define pw_session_enum_params ( c,
... )   pw_session_method(c,enum_params,0,__VA_ARGS__)

Enumerate session parameters.

Start enumeration of session parameters. For each param, a param event will be emitted.

Parameters
seqa sequence number returned in the reply
idthe parameter id to enumerate
startthe start index or 0 for the first param
numthe maximum number of params to retrieve
filtera param filter or NULL

This requires X permissions.

See also
pw_session_methods.enum_params

◆ pw_session_set_param

#define pw_session_set_param ( c,
... )   pw_session_method(c,set_param,0,__VA_ARGS__)

Set a parameter on the session.

Parameters
idthe parameter id to set
flagsextra parameter flags
paramthe parameter to set

This requires X and W permissions.

See also
pw_session_methods.set_param

◆ PW_ENDPOINT_EVENT_INFO

#define PW_ENDPOINT_EVENT_INFO   0

◆ PW_ENDPOINT_EVENT_PARAM

#define PW_ENDPOINT_EVENT_PARAM   1

◆ PW_ENDPOINT_EVENT_NUM

#define PW_ENDPOINT_EVENT_NUM   2

◆ PW_VERSION_ENDPOINT_EVENTS

#define PW_VERSION_ENDPOINT_EVENTS   0

◆ PW_ENDPOINT_METHOD_ADD_LISTENER

#define PW_ENDPOINT_METHOD_ADD_LISTENER   0

◆ PW_ENDPOINT_METHOD_SUBSCRIBE_PARAMS

#define PW_ENDPOINT_METHOD_SUBSCRIBE_PARAMS   1

◆ PW_ENDPOINT_METHOD_ENUM_PARAMS

#define PW_ENDPOINT_METHOD_ENUM_PARAMS   2

◆ PW_ENDPOINT_METHOD_SET_PARAM

#define PW_ENDPOINT_METHOD_SET_PARAM   3

◆ PW_ENDPOINT_METHOD_CREATE_LINK

#define PW_ENDPOINT_METHOD_CREATE_LINK   4

◆ PW_ENDPOINT_METHOD_NUM

#define PW_ENDPOINT_METHOD_NUM   5

◆ PW_VERSION_ENDPOINT_METHODS

#define PW_VERSION_ENDPOINT_METHODS   0

◆ pw_endpoint_method

#define pw_endpoint_method ( o,
method,
version,
... )

◆ pw_endpoint_add_listener

#define pw_endpoint_add_listener ( c,
... )   pw_endpoint_method(c,add_listener,0,__VA_ARGS__)

◆ pw_endpoint_subscribe_params

#define pw_endpoint_subscribe_params ( c,
... )   pw_endpoint_method(c,subscribe_params,0,__VA_ARGS__)

Subscribe to parameter changes.

Automatically emit param events for the given ids when they are changed.

Parameters
idsan array of param ids
n_idsthe number of ids in ids

This requires X permissions.

See also
pw_endpoint_methods.subscribe_params

◆ pw_endpoint_enum_params

#define pw_endpoint_enum_params ( c,
... )   pw_endpoint_method(c,enum_params,0,__VA_ARGS__)

Enumerate endpoint parameters.

Start enumeration of endpoint parameters. For each param, a param event will be emitted.

Parameters
seqa sequence number returned in the reply
idthe parameter id to enumerate
startthe start index or 0 for the first param
numthe maximum number of params to retrieve
filtera param filter or NULL

This requires X permissions.

See also
pw_endpoint_methods.enum_params

◆ pw_endpoint_set_param

#define pw_endpoint_set_param ( c,
... )   pw_endpoint_method(c,set_param,0,__VA_ARGS__)

Set a parameter on the endpoint.

Parameters
idthe parameter id to set
flagsextra parameter flags
paramthe parameter to set

This requires X and W permissions.

See also
pw_endpoint_methods.set_param

◆ pw_endpoint_create_link

#define pw_endpoint_create_link ( c,
... )   pw_endpoint_method(c,create_link,0,__VA_ARGS__)

Create a link.

This requires X permissions.

See also
pw_endpoint_methods.create_link

◆ PW_ENDPOINT_STREAM_EVENT_INFO

#define PW_ENDPOINT_STREAM_EVENT_INFO   0

◆ PW_ENDPOINT_STREAM_EVENT_PARAM

#define PW_ENDPOINT_STREAM_EVENT_PARAM   1

◆ PW_ENDPOINT_STREAM_EVENT_NUM

#define PW_ENDPOINT_STREAM_EVENT_NUM   2

◆ PW_VERSION_ENDPOINT_STREAM_EVENTS

#define PW_VERSION_ENDPOINT_STREAM_EVENTS   0

◆ PW_ENDPOINT_STREAM_METHOD_ADD_LISTENER

#define PW_ENDPOINT_STREAM_METHOD_ADD_LISTENER   0

◆ PW_ENDPOINT_STREAM_METHOD_SUBSCRIBE_PARAMS

#define PW_ENDPOINT_STREAM_METHOD_SUBSCRIBE_PARAMS   1

◆ PW_ENDPOINT_STREAM_METHOD_ENUM_PARAMS

#define PW_ENDPOINT_STREAM_METHOD_ENUM_PARAMS   2

◆ PW_ENDPOINT_STREAM_METHOD_SET_PARAM

#define PW_ENDPOINT_STREAM_METHOD_SET_PARAM   3

◆ PW_ENDPOINT_STREAM_METHOD_NUM

#define PW_ENDPOINT_STREAM_METHOD_NUM   4

◆ PW_VERSION_ENDPOINT_STREAM_METHODS

#define PW_VERSION_ENDPOINT_STREAM_METHODS   0

◆ pw_endpoint_stream_method

#define pw_endpoint_stream_method ( o,
method,
version,
... )

◆ pw_endpoint_stream_add_listener

#define pw_endpoint_stream_add_listener ( c,
... )   pw_endpoint_stream_method(c,add_listener,0,__VA_ARGS__)

◆ pw_endpoint_stream_subscribe_params

#define pw_endpoint_stream_subscribe_params ( c,
... )   pw_endpoint_stream_method(c,subscribe_params,0,__VA_ARGS__)

Subscribe to parameter changes.

Automatically emit param events for the given ids when they are changed.

Parameters
idsan array of param ids
n_idsthe number of ids in ids

This requires X permissions.

See also
pw_endpoint_stream_methods.subscribe_params

◆ pw_endpoint_stream_enum_params

#define pw_endpoint_stream_enum_params ( c,
... )   pw_endpoint_stream_method(c,enum_params,0,__VA_ARGS__)

Enumerate stream parameters.

Start enumeration of stream parameters. For each param, a param event will be emitted.

Parameters
seqa sequence number returned in the reply
idthe parameter id to enumerate
startthe start index or 0 for the first param
numthe maximum number of params to retrieve
filtera param filter or NULL

This requires X permissions.

See also
pw_endpoint_stream_methods.enum_params

◆ pw_endpoint_stream_set_param

#define pw_endpoint_stream_set_param ( c,
... )   pw_endpoint_stream_method(c,set_param,0,__VA_ARGS__)

Set a parameter on the stream.

Parameters
idthe parameter id to set
flagsextra parameter flags
paramthe parameter to set

This requires X and W permissions.

See also
pw_endpoint_stream_methods.set_param

◆ PW_ENDPOINT_LINK_EVENT_INFO

#define PW_ENDPOINT_LINK_EVENT_INFO   0

◆ PW_ENDPOINT_LINK_EVENT_PARAM

#define PW_ENDPOINT_LINK_EVENT_PARAM   1

◆ PW_ENDPOINT_LINK_EVENT_NUM

#define PW_ENDPOINT_LINK_EVENT_NUM   2

◆ PW_VERSION_ENDPOINT_LINK_EVENTS

#define PW_VERSION_ENDPOINT_LINK_EVENTS   0

◆ PW_ENDPOINT_LINK_METHOD_ADD_LISTENER

#define PW_ENDPOINT_LINK_METHOD_ADD_LISTENER   0

◆ PW_ENDPOINT_LINK_METHOD_SUBSCRIBE_PARAMS

#define PW_ENDPOINT_LINK_METHOD_SUBSCRIBE_PARAMS   1

◆ PW_ENDPOINT_LINK_METHOD_ENUM_PARAMS

#define PW_ENDPOINT_LINK_METHOD_ENUM_PARAMS   2

◆ PW_ENDPOINT_LINK_METHOD_SET_PARAM

#define PW_ENDPOINT_LINK_METHOD_SET_PARAM   3

◆ PW_ENDPOINT_LINK_METHOD_REQUEST_STATE

#define PW_ENDPOINT_LINK_METHOD_REQUEST_STATE   4

◆ PW_ENDPOINT_LINK_METHOD_DESTROY

#define PW_ENDPOINT_LINK_METHOD_DESTROY   5

◆ PW_ENDPOINT_LINK_METHOD_NUM

#define PW_ENDPOINT_LINK_METHOD_NUM   6

◆ PW_VERSION_ENDPOINT_LINK_METHODS

#define PW_VERSION_ENDPOINT_LINK_METHODS   0

◆ pw_endpoint_link_method

#define pw_endpoint_link_method ( o,
method,
version,
... )

◆ pw_endpoint_link_add_listener

#define pw_endpoint_link_add_listener ( c,
... )   pw_endpoint_link_method(c,add_listener,0,__VA_ARGS__)

◆ pw_endpoint_link_subscribe_params

#define pw_endpoint_link_subscribe_params ( c,
... )   pw_endpoint_link_method(c,subscribe_params,0,__VA_ARGS__)

Subscribe to parameter changes.

Automatically emit param events for the given ids when they are changed.

Parameters
idsan array of param ids
n_idsthe number of ids in ids

This requires X permissions.

See also
pw_endpoint_link_methods.subscribe_params

◆ pw_endpoint_link_enum_params

#define pw_endpoint_link_enum_params ( c,
... )   pw_endpoint_link_method(c,enum_params,0,__VA_ARGS__)

Enumerate link parameters.

Start enumeration of link parameters. For each param, a param event will be emitted.

Parameters
seqa sequence number returned in the reply
idthe parameter id to enumerate
startthe start index or 0 for the first param
numthe maximum number of params to retrieve
filtera param filter or NULL

This requires X permissions.

See also
pw_endpoint_link_methods.enum_params

◆ pw_endpoint_link_set_param

#define pw_endpoint_link_set_param ( c,
... )   pw_endpoint_link_method(c,set_param,0,__VA_ARGS__)

Set a parameter on the link.

Parameters
idthe parameter id to set
flagsextra parameter flags
paramthe parameter to set

This requires X and W permissions.

See also
pw_endpoint_link_methods.set_param

◆ pw_endpoint_link_request_state

#define pw_endpoint_link_request_state ( c,
... )   pw_endpoint_link_method(c,request_state,0,__VA_ARGS__)

Request a state on the link.

This requires X and W permissions.

See also
pw_endpoint_link_methods.request_state

◆ PW_VERSION_SESSION_INFO

#define PW_VERSION_SESSION_INFO   0

◆ PW_SESSION_CHANGE_MASK_PROPS

#define PW_SESSION_CHANGE_MASK_PROPS   (1 << 0)

◆ PW_SESSION_CHANGE_MASK_PARAMS

#define PW_SESSION_CHANGE_MASK_PARAMS   (1 << 1)

◆ PW_SESSION_CHANGE_MASK_ALL

#define PW_SESSION_CHANGE_MASK_ALL   ((1 << 2)-1)

◆ PW_VERSION_ENDPOINT_INFO

#define PW_VERSION_ENDPOINT_INFO   0

◆ PW_ENDPOINT_FLAG_PROVIDES_SESSION

#define PW_ENDPOINT_FLAG_PROVIDES_SESSION   (1 << 0)

◆ PW_ENDPOINT_CHANGE_MASK_STREAMS

#define PW_ENDPOINT_CHANGE_MASK_STREAMS   (1 << 0)

◆ PW_ENDPOINT_CHANGE_MASK_SESSION

#define PW_ENDPOINT_CHANGE_MASK_SESSION   (1 << 1)

◆ PW_ENDPOINT_CHANGE_MASK_PROPS

#define PW_ENDPOINT_CHANGE_MASK_PROPS   (1 << 2)

◆ PW_ENDPOINT_CHANGE_MASK_PARAMS

#define PW_ENDPOINT_CHANGE_MASK_PARAMS   (1 << 3)

◆ PW_ENDPOINT_CHANGE_MASK_ALL

#define PW_ENDPOINT_CHANGE_MASK_ALL   ((1 << 4)-1)

◆ PW_VERSION_ENDPOINT_STREAM_INFO

#define PW_VERSION_ENDPOINT_STREAM_INFO   0

◆ PW_ENDPOINT_STREAM_CHANGE_MASK_LINK_PARAMS

#define PW_ENDPOINT_STREAM_CHANGE_MASK_LINK_PARAMS   (1 << 0)

◆ PW_ENDPOINT_STREAM_CHANGE_MASK_PROPS

#define PW_ENDPOINT_STREAM_CHANGE_MASK_PROPS   (1 << 1)

◆ PW_ENDPOINT_STREAM_CHANGE_MASK_PARAMS

#define PW_ENDPOINT_STREAM_CHANGE_MASK_PARAMS   (1 << 2)

◆ PW_ENDPOINT_STREAM_CHANGE_MASK_ALL

#define PW_ENDPOINT_STREAM_CHANGE_MASK_ALL   ((1 << 3)-1)

◆ PW_VERSION_ENDPOINT_LINK_INFO

#define PW_VERSION_ENDPOINT_LINK_INFO   0

◆ PW_ENDPOINT_LINK_CHANGE_MASK_STATE

#define PW_ENDPOINT_LINK_CHANGE_MASK_STATE   (1 << 0)

◆ PW_ENDPOINT_LINK_CHANGE_MASK_PROPS

#define PW_ENDPOINT_LINK_CHANGE_MASK_PROPS   (1 << 1)

◆ PW_ENDPOINT_LINK_CHANGE_MASK_PARAMS

#define PW_ENDPOINT_LINK_CHANGE_MASK_PARAMS   (1 << 2)

◆ PW_ENDPOINT_LINK_CHANGE_MASK_ALL

#define PW_ENDPOINT_LINK_CHANGE_MASK_ALL   ((1 << 3)-1)

◆ PW_KEY_SESSION_ID

#define PW_KEY_SESSION_ID   "session.id"

id of a session manager

◆ PW_KEY_ENDPOINT_ID

#define PW_KEY_ENDPOINT_ID   "endpoint.id"

id of an endpoint

◆ PW_KEY_ENDPOINT_NAME

#define PW_KEY_ENDPOINT_NAME   "endpoint.name"

the name of an endpoint

◆ PW_KEY_ENDPOINT_MONITOR

#define PW_KEY_ENDPOINT_MONITOR   "endpoint.monitor"

endpoint is monitor of given endpoint

◆ PW_KEY_ENDPOINT_CLIENT_ID

#define PW_KEY_ENDPOINT_CLIENT_ID   "endpoint.client.id"

client of the endpoint

◆ PW_KEY_ENDPOINT_ICON_NAME

#define PW_KEY_ENDPOINT_ICON_NAME   "endpoint.icon-name"

an XDG icon name for the device.

Ex. "sound-card-speakers-usb"

◆ PW_KEY_ENDPOINT_AUTOCONNECT

#define PW_KEY_ENDPOINT_AUTOCONNECT   "endpoint.autoconnect"

try to automatically connect this endpoint.

◆ PW_KEY_ENDPOINT_TARGET

#define PW_KEY_ENDPOINT_TARGET   "endpoint.target"

the suggested target to connect to

◆ PW_KEY_ENDPOINT_STREAM_ID

#define PW_KEY_ENDPOINT_STREAM_ID   "endpoint-stream.id"

id of a stream

◆ PW_KEY_ENDPOINT_STREAM_NAME

#define PW_KEY_ENDPOINT_STREAM_NAME   "endpoint-stream.name"

unique name of a stream

◆ PW_KEY_ENDPOINT_STREAM_DESCRIPTION

#define PW_KEY_ENDPOINT_STREAM_DESCRIPTION   "endpoint-stream.description"

description of a stream

◆ PW_KEY_ENDPOINT_LINK_OUTPUT_ENDPOINT

#define PW_KEY_ENDPOINT_LINK_OUTPUT_ENDPOINT   "endpoint-link.output.endpoint"

output endpoint of link

◆ PW_KEY_ENDPOINT_LINK_OUTPUT_STREAM

#define PW_KEY_ENDPOINT_LINK_OUTPUT_STREAM   "endpoint-link.output.stream"

output stream of link

◆ PW_KEY_ENDPOINT_LINK_INPUT_ENDPOINT

#define PW_KEY_ENDPOINT_LINK_INPUT_ENDPOINT   "endpoint-link.input.endpoint"

input endpoint of link

◆ PW_KEY_ENDPOINT_LINK_INPUT_STREAM

#define PW_KEY_ENDPOINT_LINK_INPUT_STREAM   "endpoint-link.input.stream"

input stream of link

Function Documentation

◆ pw_session_info_update()

static struct pw_session_info * pw_session_info_update ( struct pw_session_info * info,
const struct pw_session_info * update )
inlinestatic

◆ pw_session_info_free()

static void pw_session_info_free ( struct pw_session_info * info)
inlinestatic

◆ pw_endpoint_info_update()

static struct pw_endpoint_info * pw_endpoint_info_update ( struct pw_endpoint_info * info,
const struct pw_endpoint_info * update )
inlinestatic

◆ pw_endpoint_info_free()

static void pw_endpoint_info_free ( struct pw_endpoint_info * info)
inlinestatic

◆ pw_endpoint_stream_info_update()

static struct pw_endpoint_stream_info * pw_endpoint_stream_info_update ( struct pw_endpoint_stream_info * info,
const struct pw_endpoint_stream_info * update )
inlinestatic

◆ pw_endpoint_stream_info_free()

static void pw_endpoint_stream_info_free ( struct pw_endpoint_stream_info * info)
inlinestatic

◆ pw_endpoint_link_info_update()

static struct pw_endpoint_link_info * pw_endpoint_link_info_update ( struct pw_endpoint_link_info * info,
const struct pw_endpoint_link_info * update )
inlinestatic

◆ pw_endpoint_link_info_free()

static void pw_endpoint_link_info_free ( struct pw_endpoint_link_info * info)
inlinestatic

Variable Documentation

◆ update [1/2]

int(* pw_client_endpoint_methods::update) (void *object, #define PW_CLIENT_ENDPOINT_UPDATE_PARAMS #define PW_CLIENT_ENDPOINT_UPDATE_INFO uint32_t change_mask, uint32_t n_params, const struct spa_pod **params, const struct pw_endpoint_info *info)

Update endpoint information.

◆ stream_update

int(* pw_client_endpoint_methods::stream_update) (void *object, uint32_t stream_id, #define PW_CLIENT_ENDPOINT_STREAM_UPDATE_PARAMS #define PW_CLIENT_ENDPOINT_STREAM_UPDATE_INFO #define PW_CLIENT_ENDPOINT_STREAM_UPDATE_DESTROYED uint32_t change_mask, uint32_t n_params, const struct spa_pod **params, const struct pw_endpoint_stream_info *info)

Update stream information.

◆ update [2/2]

int(* pw_client_session_methods::update) (void *object, #define PW_CLIENT_SESSION_UPDATE_PARAMS #define PW_CLIENT_SESSION_UPDATE_INFO uint32_t change_mask, uint32_t n_params, const struct spa_pod **params, const struct pw_session_info *info)

Update session information.

◆ link_update

int(* pw_client_session_methods::link_update) (void *object, uint32_t link_id, #define PW_CLIENT_SESSION_LINK_UPDATE_PARAMS #define PW_CLIENT_SESSION_LINK_UPDATE_INFO #define PW_CLIENT_SESSION_LINK_UPDATE_DESTROYED uint32_t change_mask, uint32_t n_params, const struct spa_pod **params, const struct pw_endpoint_link_info *info)

Update link information.