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_SESSION_PERM_MASK                    PW_PERM_RWX 
   25#define PW_VERSION_SESSION                      0 
   28#define PW_TYPE_INTERFACE_Endpoint              PW_TYPE_INFO_INTERFACE_BASE "Endpoint" 
   29#define PW_ENDPOINT_PERM_MASK                   PW_PERM_RWX 
   30#define PW_VERSION_ENDPOINT                     0 
   33#define PW_TYPE_INTERFACE_EndpointStream        PW_TYPE_INFO_INTERFACE_BASE "EndpointStream" 
   34#define PW_ENDPOINT_STREAM_PERM_MASK            PW_PERM_RWX 
   35#define PW_VERSION_ENDPOINT_STREAM              0 
   38#define PW_TYPE_INTERFACE_EndpointLink          PW_TYPE_INFO_INTERFACE_BASE "EndpointLink" 
   39#define PW_ENDPOINT_LINK_PERM_MASK              PW_PERM_RWX 
   40#define PW_VERSION_ENDPOINT_LINK                0 
   45#define PW_SESSION_EVENT_INFO           0 
   46#define PW_SESSION_EVENT_PARAM          1 
   47#define PW_SESSION_EVENT_NUM            2 
   50#define PW_VERSION_SESSION_EVENTS               0 
   71        void (*param) (
void *data, 
int seq,
 
   72                       uint32_t id, uint32_t index, uint32_t next,
 
   76#define PW_SESSION_METHOD_ADD_LISTENER          0 
   77#define PW_SESSION_METHOD_SUBSCRIBE_PARAMS      1 
   78#define PW_SESSION_METHOD_ENUM_PARAMS           2 
   79#define PW_SESSION_METHOD_SET_PARAM             3 
   80#define PW_SESSION_METHOD_CREATE_LINK           4 
   81#define PW_SESSION_METHOD_NUM                   5 
   84#define PW_VERSION_SESSION_METHODS      0 
 
  120                        uint32_t id, uint32_t start, uint32_t num,
 
  132        int (*
set_param) (
void *object, uint32_t id, uint32_t flags,
 
  136#define pw_session_method(o,method,version,...)                         \ 
  138        int _res = -ENOTSUP;                                            \ 
  139        spa_interface_call_res((struct spa_interface*)o,                \ 
  140                        struct pw_session_methods, _res,                \ 
  141                        method, version, ##__VA_ARGS__);                \ 
  145#define pw_session_add_listener(c,...)          pw_session_method(c,add_listener,0,__VA_ARGS__) 
  146#define pw_session_subscribe_params(c,...)      pw_session_method(c,subscribe_params,0,__VA_ARGS__) 
  147#define pw_session_enum_params(c,...)           pw_session_method(c,enum_params,0,__VA_ARGS__) 
  148#define pw_session_set_param(c,...)             pw_session_method(c,set_param,0,__VA_ARGS__) 
  153#define PW_ENDPOINT_EVENT_INFO          0 
  154#define PW_ENDPOINT_EVENT_PARAM         1 
  155#define PW_ENDPOINT_EVENT_NUM           2 
  158#define PW_VERSION_ENDPOINT_EVENTS      0 
  179        void (*param) (
void *data, 
int seq,
 
  180                       uint32_t id, uint32_t index, uint32_t next,
 
  184#define PW_ENDPOINT_METHOD_ADD_LISTENER         0 
  185#define PW_ENDPOINT_METHOD_SUBSCRIBE_PARAMS     1 
  186#define PW_ENDPOINT_METHOD_ENUM_PARAMS          2 
  187#define PW_ENDPOINT_METHOD_SET_PARAM            3 
  188#define PW_ENDPOINT_METHOD_CREATE_LINK          4 
  189#define PW_ENDPOINT_METHOD_NUM                  5 
  192#define PW_VERSION_ENDPOINT_METHODS     0 
  228                        uint32_t id, uint32_t start, uint32_t num,
 
  240        int (*
set_param) (
void *object, uint32_t id, uint32_t flags,
 
  251#define pw_endpoint_method(o,method,version,...)                        \ 
  253        int _res = -ENOTSUP;                                            \ 
  254        spa_interface_call_res((struct spa_interface*)o,                \ 
  255                        struct pw_endpoint_methods, _res,               \ 
  256                        method, version, ##__VA_ARGS__);                \ 
  260#define pw_endpoint_add_listener(c,...)         pw_endpoint_method(c,add_listener,0,__VA_ARGS__) 
  261#define pw_endpoint_subscribe_params(c,...)     pw_endpoint_method(c,subscribe_params,0,__VA_ARGS__) 
  262#define pw_endpoint_enum_params(c,...)          pw_endpoint_method(c,enum_params,0,__VA_ARGS__) 
  263#define pw_endpoint_set_param(c,...)            pw_endpoint_method(c,set_param,0,__VA_ARGS__) 
  264#define pw_endpoint_create_link(c,...)          pw_endpoint_method(c,create_link,0,__VA_ARGS__) 
  268#define PW_ENDPOINT_STREAM_EVENT_INFO           0 
  269#define PW_ENDPOINT_STREAM_EVENT_PARAM          1 
  270#define PW_ENDPOINT_STREAM_EVENT_NUM            2 
  273#define PW_VERSION_ENDPOINT_STREAM_EVENTS       0 
  294        void (*param) (
void *data, 
int seq,
 
  295                       uint32_t id, uint32_t index, uint32_t next,
 
  299#define PW_ENDPOINT_STREAM_METHOD_ADD_LISTENER          0 
 
  300#define PW_ENDPOINT_STREAM_METHOD_SUBSCRIBE_PARAMS      1 
  301#define PW_ENDPOINT_STREAM_METHOD_ENUM_PARAMS           2 
  302#define PW_ENDPOINT_STREAM_METHOD_SET_PARAM             3 
  303#define PW_ENDPOINT_STREAM_METHOD_NUM                   4 
  306#define PW_VERSION_ENDPOINT_STREAM_METHODS      0 
 
  342                        uint32_t id, uint32_t start, uint32_t num,
 
  354        int (*
set_param) (
void *object, uint32_t id, uint32_t flags,
 
  358#define pw_endpoint_stream_method(o,method,version,...)         \ 
  360        int _res = -ENOTSUP;                                            \ 
  361        spa_interface_call_res((struct spa_interface*)o,                \ 
  362                        struct pw_endpoint_stream_methods, _res,        \ 
  363                        method, version, ##__VA_ARGS__);                \ 
  367#define pw_endpoint_stream_add_listener(c,...)          pw_endpoint_stream_method(c,add_listener,0,__VA_ARGS__) 
  368#define pw_endpoint_stream_subscribe_params(c,...)      pw_endpoint_stream_method(c,subscribe_params,0,__VA_ARGS__) 
  369#define pw_endpoint_stream_enum_params(c,...)           pw_endpoint_stream_method(c,enum_params,0,__VA_ARGS__) 
  370#define pw_endpoint_stream_set_param(c,...)             pw_endpoint_stream_method(c,set_param,0,__VA_ARGS__) 
  374#define PW_ENDPOINT_LINK_EVENT_INFO             0 
  375#define PW_ENDPOINT_LINK_EVENT_PARAM            1 
  376#define PW_ENDPOINT_LINK_EVENT_NUM              2 
  379#define PW_VERSION_ENDPOINT_LINK_EVENTS 0 
  400        void (*param) (
void *data, 
int seq,
 
  401                       uint32_t id, uint32_t index, uint32_t next,
 
  405#define PW_ENDPOINT_LINK_METHOD_ADD_LISTENER            0 
  406#define PW_ENDPOINT_LINK_METHOD_SUBSCRIBE_PARAMS        1 
  407#define PW_ENDPOINT_LINK_METHOD_ENUM_PARAMS             2 
  408#define PW_ENDPOINT_LINK_METHOD_SET_PARAM               3 
  409#define PW_ENDPOINT_LINK_METHOD_REQUEST_STATE           4 
  410#define PW_ENDPOINT_LINK_METHOD_DESTROY                 5 
  411#define PW_ENDPOINT_LINK_METHOD_NUM                     6 
  414#define PW_VERSION_ENDPOINT_LINK_METHODS        0 
 
  450                        uint32_t id, uint32_t start, uint32_t num,
 
  462        int (*
set_param) (
void *object, uint32_t id, uint32_t flags,
 
  473#define pw_endpoint_link_method(o,method,version,...)                   \ 
  475        int _res = -ENOTSUP;                                            \ 
  476        spa_interface_call_res((struct spa_interface*)o,                \ 
  477                        struct pw_endpoint_link_methods, _res,          \ 
  478                        method, version, ##__VA_ARGS__);                \ 
  482#define pw_endpoint_link_add_listener(c,...)            pw_endpoint_link_method(c,add_listener,0,__VA_ARGS__) 
  483#define pw_endpoint_link_subscribe_params(c,...)        pw_endpoint_link_method(c,subscribe_params,0,__VA_ARGS__) 
  484#define pw_endpoint_link_enum_params(c,...)             pw_endpoint_link_method(c,enum_params,0,__VA_ARGS__) 
  485#define pw_endpoint_link_set_param(c,...)               pw_endpoint_link_method(c,set_param,0,__VA_ARGS__) 
  486#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:199
void(* info)(void *data, const struct pw_endpoint_info *info)
Notify endpoint info.
Definition interfaces.h:209
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:222
uint32_t version
version of this structure
Definition interfaces.h:202
Definition introspect.h:50
Definition interfaces.h:459
void(* info)(void *data, const struct pw_endpoint_link_info *info)
Notify endpoint link info.
Definition interfaces.h:469
uint32_t version
version of this structure
Definition interfaces.h:462
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:482
Definition introspect.h:101
Definition interfaces.h:502
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:552
int(* request_state)(void *object, enum pw_endpoint_link_state state)
Request a state on the link.
Definition interfaces.h:560
uint32_t version
version of this structure
Definition interfaces.h:505
int(* add_listener)(void *object, struct spa_hook *listener, const struct pw_endpoint_link_events *events, void *data)
Definition interfaces.h:507
int(* subscribe_params)(void *object, uint32_t *ids, uint32_t n_ids)
Subscribe to parameter changes.
Definition interfaces.h:523
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:539
Definition interfaces.h:240
uint32_t version
version of this structure
Definition interfaces.h:243
int(* add_listener)(void *object, struct spa_hook *listener, const struct pw_endpoint_events *events, void *data)
Definition interfaces.h:245
int(* subscribe_params)(void *object, uint32_t *ids, uint32_t n_ids)
Subscribe to parameter changes.
Definition interfaces.h:261
int(* create_link)(void *object, const struct spa_dict *props)
Create a link.
Definition interfaces.h:298
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:290
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:277
Definition interfaces.h:335
uint32_t version
version of this structure
Definition interfaces.h:338
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:358
void(* info)(void *data, const struct pw_endpoint_stream_info *info)
Notify endpoint stream info.
Definition interfaces.h:345
Definition introspect.h:79
Definition interfaces.h:374
int(* add_listener)(void *object, struct spa_hook *listener, const struct pw_endpoint_stream_events *events, void *data)
Definition interfaces.h:379
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:424
uint32_t version
version of this structure
Definition interfaces.h:377
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:411
int(* subscribe_params)(void *object, uint32_t *ids, uint32_t n_ids)
Subscribe to parameter changes.
Definition interfaces.h:395
Definition interfaces.h:72
void(* info)(void *data, const struct pw_session_info *info)
Notify session info.
Definition interfaces.h:82
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:95
uint32_t version
version of this structure
Definition interfaces.h:75
Definition introspect.h:33
Definition interfaces.h:113
uint32_t version
version of this structure
Definition interfaces.h:116
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:163
int(* subscribe_params)(void *object, uint32_t *ids, uint32_t n_ids)
Subscribe to parameter changes.
Definition interfaces.h:134
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:150
int(* add_listener)(void *object, struct spa_hook *listener, const struct pw_session_events *events, void *data)
Definition interfaces.h:118
A hook, contains the structure with functions and the data passed to the functions.
Definition hook.h:350