Session Manager
Extensions

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

## 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. More...
#define | pw_client_endpoint_stream_update(o, ...) pw_client_endpoint_method(o,stream_update,0,__VA_ARGS__)
| Update stream information. More...
#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. More...
#define | pw_client_session_link_update(o, ...) pw_client_session_method(o,link_update,0,__VA_ARGS__)
| Update link information. More...
#define | PW_TYPE_INTERFACE_Session PW_TYPE_INFO_INTERFACE_BASE "Session"
#define | PW_VERSION_SESSION 0
#define | PW_TYPE_INTERFACE_Endpoint PW_TYPE_INFO_INTERFACE_BASE "Endpoint"
#define | PW_VERSION_ENDPOINT 0
#define | PW_TYPE_INTERFACE_EndpointStream PW_TYPE_INFO_INTERFACE_BASE "EndpointStream"
#define | PW_VERSION_ENDPOINT_STREAM 0
#define | PW_TYPE_INTERFACE_EndpointLink PW_TYPE_INFO_INTERFACE_BASE "EndpointLink"
#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. More...
#define | pw_session_enum_params(c, ...) pw_session_method(c,enum_params,0,__VA_ARGS__)
| Enumerate session parameters. More...
#define | pw_session_set_param(c, ...) pw_session_method(c,set_param,0,__VA_ARGS__)
| Set a parameter on the session. More...
#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. More...
#define | pw_endpoint_enum_params(c, ...) pw_endpoint_method(c,enum_params,0,__VA_ARGS__)
| Enumerate endpoint parameters. More...
#define | pw_endpoint_set_param(c, ...) pw_endpoint_method(c,set_param,0,__VA_ARGS__)
| Set a parameter on the endpoint. More...
#define | pw_endpoint_create_link(c, ...) pw_endpoint_method(c,create_link,0,__VA_ARGS__)
#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. More...
#define | pw_endpoint_stream_enum_params(c, ...) pw_endpoint_stream_method(c,enum_params,0,__VA_ARGS__)
| Enumerate stream parameters. More...
#define | pw_endpoint_stream_set_param(c, ...) pw_endpoint_stream_method(c,set_param,0,__VA_ARGS__)
| Set a parameter on the stream. More...
#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. More...
#define | pw_endpoint_link_enum_params(c, ...) pw_endpoint_link_method(c,enum_params,0,__VA_ARGS__)
| Enumerate link parameters. More...
#define | pw_endpoint_link_set_param(c, ...) pw_endpoint_link_method(c,set_param,0,__VA_ARGS__)
| Set a parameter on the link. More...
#define | pw_endpoint_link_request_state(c, ...) pw_endpoint_link_method(c,request_state,0,__VA_ARGS__)
#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 More...
#define | PW_KEY_ENDPOINT_ID "endpoint.id"
| id of an endpoint More...
#define | PW_KEY_ENDPOINT_NAME "endpoint.name"
| the name of an endpoint More...
#define | PW_KEY_ENDPOINT_MONITOR "endpoint.monitor"
| endpoint is monitor of given endpoint More...
#define | PW_KEY_ENDPOINT_CLIENT_ID "endpoint.client.id"
| client of the endpoint More...
#define | PW_KEY_ENDPOINT_ICON_NAME "endpoint.icon-name"
| an XDG icon name for the device. More...
#define | PW_KEY_ENDPOINT_AUTOCONNECT "endpoint.autoconnect"
| try to automatically connect this endpoint. More...
#define | PW_KEY_ENDPOINT_TARGET "endpoint.target"
| the suggested target to connect to More...
#define | PW_KEY_ENDPOINT_STREAM_ID "endpoint-stream.id"
| id of a stream More...
#define | PW_KEY_ENDPOINT_STREAM_NAME "endpoint-stream.name"
| unique name of a stream More...
#define | PW_KEY_ENDPOINT_STREAM_DESCRIPTION "endpoint-stream.description"
| description of a stream More...
#define | PW_KEY_ENDPOINT_LINK_OUTPUT_ENDPOINT "endpoint-link.output.endpoint"
| output endpoint of link More...
#define | PW_KEY_ENDPOINT_LINK_OUTPUT_STREAM "endpoint-link.output.stream"
| output stream of link More...
#define | PW_KEY_ENDPOINT_LINK_INPUT_ENDPOINT "endpoint-link.input.endpoint"
| input endpoint of link More...
#define | PW_KEY_ENDPOINT_LINK_INPUT_STREAM "endpoint-link.input.stream"
| input stream of link More...

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

## Functions

static struct pw_session_info * | pw_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_info * | pw_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_info * | pw_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_info * | pw_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. More...
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. More...
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. More...
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. More...

## Detailed Description

Session manager interface.

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

See also
  pw_client_endpoint_methods.add_listener

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

See also
  pw_client_session_methods.add_listener

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

#define PW_VERSION_SESSION 0

## PW_TYPE_INTERFACE_Endpoint

#define PW_TYPE_INTERFACE_Endpoint PW_TYPE_INFO_INTERFACE_BASE "Endpoint"

## PW_VERSION_ENDPOINT

#define PW_VERSION_ENDPOINT 0

## PW_TYPE_INTERFACE_EndpointStream

#define PW_TYPE_INTERFACE_EndpointStream PW_TYPE_INFO_INTERFACE_BASE "EndpointStream"

## 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_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__)

See also
  pw_session_methods.add_listener

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

  ids | an array of param ids
  n_ids | the number of ids in ids

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

  seq | a sequence number returned in the reply
  id | the parameter id to enumerate
  start | the start index or 0 for the first param
  num | the maximum number of params to retrieve
  filter | a param filter or NULL

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

  id | the parameter id to set
  flags | extra parameter flags
  param | the parameter to set

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

See also
  pw_endpoint_methods.add_listener

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

  ids | an array of param ids
  n_ids | the number of ids in ids

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

  seq | a sequence number returned in the reply
  id | the parameter id to enumerate
  start | the start index or 0 for the first param
  num | the maximum number of params to retrieve
  filter | a param filter or NULL

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

  id | the parameter id to set
  flags | extra parameter flags
  param | the parameter to set

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

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

See also
  pw_endpoint_stream_methods.add_listener

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

  ids | an array of param ids
  n_ids | the number of ids in ids

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

  seq | a sequence number returned in the reply
  id | the parameter id to enumerate
  start | the start index or 0 for the first param
  num | the maximum number of params to retrieve
  filter | a param filter or NULL

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

  id | the parameter id to set
  flags | extra parameter flags
  param | the parameter to set

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

See also
  pw_endpoint_link_methods.add_listener

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

  ids | an array of param ids
  n_ids | the number of ids in ids

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

  seq | a sequence number returned in the reply
  id | the parameter id to enumerate
  start | the start index or 0 for the first param
  num | the maximum number of params to retrieve
  filter | a param filter or NULL

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

  id | the parameter id to set
  flags | extra parameter flags
  param | the parameter to set

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

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

## Enumeration Type Documentation

## pw_endpoint_link_state

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

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

inline static

## pw_session_info_free()

static void pw_session_info_free | ( | struct pw_session_info * | info | ) |

inline static

## pw_endpoint_info_update()

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

inline static

## pw_endpoint_info_free()

static void pw_endpoint_info_free | ( | struct pw_endpoint_info * | info | ) |

inline static

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

inline static

## pw_endpoint_stream_info_free()

static void pw_endpoint_stream_info_free | ( | struct pw_endpoint_stream_info * | info | ) |

inline static

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

inline static

## pw_endpoint_link_info_free()

static void pw_endpoint_link_info_free | ( | struct pw_endpoint_link_info * | info | ) |

inline static

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