6#ifndef PIPEWIRE_EXT_SESSION_MANAGER_INTERFACES_H
7#define PIPEWIRE_EXT_SESSION_MANAGER_INTERFACES_H
23#define PW_TYPE_INTERFACE_Session PW_TYPE_INFO_INTERFACE_BASE "Session"
24#define PW_VERSION_SESSION 0
27#define PW_TYPE_INTERFACE_Endpoint PW_TYPE_INFO_INTERFACE_BASE "Endpoint"
28#define PW_VERSION_ENDPOINT 0
31#define PW_TYPE_INTERFACE_EndpointStream PW_TYPE_INFO_INTERFACE_BASE "EndpointStream"
32#define PW_VERSION_ENDPOINT_STREAM 0
35#define PW_TYPE_INTERFACE_EndpointLink PW_TYPE_INFO_INTERFACE_BASE "EndpointLink"
36#define PW_VERSION_ENDPOINT_LINK 0
41#define PW_SESSION_EVENT_INFO 0
42#define PW_SESSION_EVENT_PARAM 1
43#define PW_SESSION_EVENT_NUM 2
46#define PW_VERSION_SESSION_EVENTS 0
67 void (*
param) (
void *data,
int seq,
68 uint32_t id, uint32_t index, uint32_t next,
72#define PW_SESSION_METHOD_ADD_LISTENER 0
73#define PW_SESSION_METHOD_SUBSCRIBE_PARAMS 1
74#define PW_SESSION_METHOD_ENUM_PARAMS 2
75#define PW_SESSION_METHOD_SET_PARAM 3
76#define PW_SESSION_METHOD_CREATE_LINK 4
77#define PW_SESSION_METHOD_NUM 5
80#define PW_VERSION_SESSION_METHODS 0
112 uint32_t id, uint32_t start, uint32_t num,
122 int (*
set_param) (
void *object, uint32_t id, uint32_t flags,
126#define pw_session_method(o,method,version,...) \
128 int _res = -ENOTSUP; \
129 spa_interface_call_res((struct spa_interface*)o, \
130 struct pw_session_methods, _res, \
131 method, version, ##__VA_ARGS__); \
135#define pw_session_add_listener(c,...) pw_session_method(c,add_listener,0,__VA_ARGS__)
136#define pw_session_subscribe_params(c,...) pw_session_method(c,subscribe_params,0,__VA_ARGS__)
137#define pw_session_enum_params(c,...) pw_session_method(c,enum_params,0,__VA_ARGS__)
138#define pw_session_set_param(c,...) pw_session_method(c,set_param,0,__VA_ARGS__)
143#define PW_ENDPOINT_EVENT_INFO 0
144#define PW_ENDPOINT_EVENT_PARAM 1
145#define PW_ENDPOINT_EVENT_NUM 2
148#define PW_VERSION_ENDPOINT_EVENTS 0
169 void (*
param) (
void *data,
int seq,
170 uint32_t id, uint32_t index, uint32_t next,
174#define PW_ENDPOINT_METHOD_ADD_LISTENER 0
175#define PW_ENDPOINT_METHOD_SUBSCRIBE_PARAMS 1
176#define PW_ENDPOINT_METHOD_ENUM_PARAMS 2
177#define PW_ENDPOINT_METHOD_SET_PARAM 3
178#define PW_ENDPOINT_METHOD_CREATE_LINK 4
179#define PW_ENDPOINT_METHOD_NUM 5
182#define PW_VERSION_ENDPOINT_METHODS 0
214 uint32_t id, uint32_t start, uint32_t num,
224 int (*
set_param) (
void *object, uint32_t id, uint32_t flags,
230#define pw_endpoint_method(o,method,version,...) \
232 int _res = -ENOTSUP; \
233 spa_interface_call_res((struct spa_interface*)o, \
234 struct pw_endpoint_methods, _res, \
235 method, version, ##__VA_ARGS__); \
239#define pw_endpoint_add_listener(c,...) pw_endpoint_method(c,add_listener,0,__VA_ARGS__)
240#define pw_endpoint_subscribe_params(c,...) pw_endpoint_method(c,subscribe_params,0,__VA_ARGS__)
241#define pw_endpoint_enum_params(c,...) pw_endpoint_method(c,enum_params,0,__VA_ARGS__)
242#define pw_endpoint_set_param(c,...) pw_endpoint_method(c,set_param,0,__VA_ARGS__)
243#define pw_endpoint_create_link(c,...) pw_endpoint_method(c,create_link,0,__VA_ARGS__)
247#define PW_ENDPOINT_STREAM_EVENT_INFO 0
248#define PW_ENDPOINT_STREAM_EVENT_PARAM 1
249#define PW_ENDPOINT_STREAM_EVENT_NUM 2
252#define PW_VERSION_ENDPOINT_STREAM_EVENTS 0
274 uint32_t id, uint32_t index, uint32_t next,
278#define PW_ENDPOINT_STREAM_METHOD_ADD_LISTENER 0
279#define PW_ENDPOINT_STREAM_METHOD_SUBSCRIBE_PARAMS 1
280#define PW_ENDPOINT_STREAM_METHOD_ENUM_PARAMS 2
281#define PW_ENDPOINT_STREAM_METHOD_SET_PARAM 3
282#define PW_ENDPOINT_STREAM_METHOD_NUM 4
285#define PW_VERSION_ENDPOINT_STREAM_METHODS 0
317 uint32_t id, uint32_t start, uint32_t num,
327 int (*
set_param) (
void *object, uint32_t id, uint32_t flags,
331#define pw_endpoint_stream_method(o,method,version,...) \
333 int _res = -ENOTSUP; \
334 spa_interface_call_res((struct spa_interface*)o, \
335 struct pw_endpoint_stream_methods, _res, \
336 method, version, ##__VA_ARGS__); \
340#define pw_endpoint_stream_add_listener(c,...) pw_endpoint_stream_method(c,add_listener,0,__VA_ARGS__)
341#define pw_endpoint_stream_subscribe_params(c,...) pw_endpoint_stream_method(c,subscribe_params,0,__VA_ARGS__)
342#define pw_endpoint_stream_enum_params(c,...) pw_endpoint_stream_method(c,enum_params,0,__VA_ARGS__)
343#define pw_endpoint_stream_set_param(c,...) pw_endpoint_stream_method(c,set_param,0,__VA_ARGS__)
347#define PW_ENDPOINT_LINK_EVENT_INFO 0
348#define PW_ENDPOINT_LINK_EVENT_PARAM 1
349#define PW_ENDPOINT_LINK_EVENT_NUM 2
352#define PW_VERSION_ENDPOINT_LINK_EVENTS 0
373 void (*
param) (
void *data,
int seq,
374 uint32_t id, uint32_t index, uint32_t next,
378#define PW_ENDPOINT_LINK_METHOD_ADD_LISTENER 0
379#define PW_ENDPOINT_LINK_METHOD_SUBSCRIBE_PARAMS 1
380#define PW_ENDPOINT_LINK_METHOD_ENUM_PARAMS 2
381#define PW_ENDPOINT_LINK_METHOD_SET_PARAM 3
382#define PW_ENDPOINT_LINK_METHOD_REQUEST_STATE 4
383#define PW_ENDPOINT_LINK_METHOD_DESTROY 5
384#define PW_ENDPOINT_LINK_METHOD_NUM 6
387#define PW_VERSION_ENDPOINT_LINK_METHODS 0
419 uint32_t id, uint32_t start, uint32_t num,
429 int (*
set_param) (
void *object, uint32_t id, uint32_t flags,
435#define pw_endpoint_link_method(o,method,version,...) \
437 int _res = -ENOTSUP; \
438 spa_interface_call_res((struct spa_interface*)o, \
439 struct pw_endpoint_link_methods, _res, \
440 method, version, ##__VA_ARGS__); \
444#define pw_endpoint_link_add_listener(c,...) pw_endpoint_link_method(c,add_listener,0,__VA_ARGS__)
445#define pw_endpoint_link_subscribe_params(c,...) pw_endpoint_link_method(c,subscribe_params,0,__VA_ARGS__)
446#define pw_endpoint_link_enum_params(c,...) pw_endpoint_link_method(c,enum_params,0,__VA_ARGS__)
447#define pw_endpoint_link_set_param(c,...) pw_endpoint_link_method(c,set_param,0,__VA_ARGS__)
448#define pw_endpoint_link_request_state(c,...) pw_endpoint_link_method(c,request_state,0,__VA_ARGS__)
pw_endpoint_link_state
Definition: introspect.h:26
pipewire/extensions/session-manager/introspect.h
Definition: interfaces.h:185
void(* info)(void *data, const struct pw_endpoint_info *info)
Notify endpoint info.
Definition: interfaces.h:195
void(* param)(void *data, int seq, uint32_t id, uint32_t index, uint32_t next, const struct spa_pod *param)
Notify a endpoint param.
Definition: interfaces.h:208
uint32_t version
version of this structure
Definition: interfaces.h:188
Definition: introspect.h:50
Definition: interfaces.h:428
void(* info)(void *data, const struct pw_endpoint_link_info *info)
Notify endpoint link info.
Definition: interfaces.h:438
uint32_t version
version of this structure
Definition: interfaces.h:431
void(* param)(void *data, int seq, uint32_t id, uint32_t index, uint32_t next, const struct spa_pod *param)
Notify a endpoint link param.
Definition: interfaces.h:451
Definition: introspect.h:101
Definition: interfaces.h:471
int(* set_param)(void *object, uint32_t id, uint32_t flags, const struct spa_pod *param)
Set a parameter on the link.
Definition: interfaces.h:515
int(* request_state)(void *object, enum pw_endpoint_link_state state)
Definition: interfaces.h:518
uint32_t version
version of this structure
Definition: interfaces.h:474
int(* add_listener)(void *object, struct spa_hook *listener, const struct pw_endpoint_link_events *events, void *data)
Definition: interfaces.h:476
int(* subscribe_params)(void *object, uint32_t *ids, uint32_t n_ids)
Subscribe to parameter changes.
Definition: interfaces.h:490
int(* enum_params)(void *object, int seq, uint32_t id, uint32_t start, uint32_t num, const struct spa_pod *filter)
Enumerate link parameters.
Definition: interfaces.h:504
Definition: interfaces.h:226
uint32_t version
version of this structure
Definition: interfaces.h:229
int(* add_listener)(void *object, struct spa_hook *listener, const struct pw_endpoint_events *events, void *data)
Definition: interfaces.h:231
int(* subscribe_params)(void *object, uint32_t *ids, uint32_t n_ids)
Subscribe to parameter changes.
Definition: interfaces.h:245
int(* create_link)(void *object, const struct spa_dict *props)
Definition: interfaces.h:273
int(* set_param)(void *object, uint32_t id, uint32_t flags, const struct spa_pod *param)
Set a parameter on the endpoint.
Definition: interfaces.h:270
int(* enum_params)(void *object, int seq, uint32_t id, uint32_t start, uint32_t num, const struct spa_pod *filter)
Enumerate endpoint parameters.
Definition: interfaces.h:259
Definition: interfaces.h:310
uint32_t version
version of this structure
Definition: interfaces.h:313
void(* param)(void *data, int seq, uint32_t id, uint32_t index, uint32_t next, const struct spa_pod *param)
Notify a endpoint stream param.
Definition: interfaces.h:333
void(* info)(void *data, const struct pw_endpoint_stream_info *info)
Notify endpoint stream info.
Definition: interfaces.h:320
Definition: introspect.h:79
Definition: interfaces.h:349
int(* add_listener)(void *object, struct spa_hook *listener, const struct pw_endpoint_stream_events *events, void *data)
Definition: interfaces.h:354
int(* set_param)(void *object, uint32_t id, uint32_t flags, const struct spa_pod *param)
Set a parameter on the stream.
Definition: interfaces.h:393
uint32_t version
version of this structure
Definition: interfaces.h:352
int(* enum_params)(void *object, int seq, uint32_t id, uint32_t start, uint32_t num, const struct spa_pod *filter)
Enumerate stream parameters.
Definition: interfaces.h:382
int(* subscribe_params)(void *object, uint32_t *ids, uint32_t n_ids)
Subscribe to parameter changes.
Definition: interfaces.h:368
Definition: interfaces.h:64
void(* info)(void *data, const struct pw_session_info *info)
Notify session info.
Definition: interfaces.h:74
void(* param)(void *data, int seq, uint32_t id, uint32_t index, uint32_t next, const struct spa_pod *param)
Notify a session param.
Definition: interfaces.h:87
uint32_t version
version of this structure
Definition: interfaces.h:67
Definition: introspect.h:33
Definition: interfaces.h:105
uint32_t version
version of this structure
Definition: interfaces.h:108
int(* set_param)(void *object, uint32_t id, uint32_t flags, const struct spa_pod *param)
Set a parameter on the session.
Definition: interfaces.h:149
int(* subscribe_params)(void *object, uint32_t *ids, uint32_t n_ids)
Subscribe to parameter changes.
Definition: interfaces.h:124
int(* enum_params)(void *object, int seq, uint32_t id, uint32_t start, uint32_t num, const struct spa_pod *filter)
Enumerate session parameters.
Definition: interfaces.h:138
int(* add_listener)(void *object, struct spa_hook *listener, const struct pw_session_events *events, void *data)
Definition: interfaces.h:110
Definition: utils/dict.h:39
A hook, contains the structure with functions and the data passed to the functions.
Definition: hook.h:331