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
uint32_t id
the endpoint id (global)
Definition: introspect.h:54
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
uint32_t id
the link id (global)
Definition: introspect.h:105
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
uint32_t id
the stream id (local or global)
Definition: introspect.h:83
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
uint32_t id
the session id (global)
Definition: introspect.h:37
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