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