6#ifndef PIPEWIRE_EXT_SESSION_MANAGER_INTROSPECT_FUNCS_H 
    7#define PIPEWIRE_EXT_SESSION_MANAGER_INTROSPECT_FUNCS_H 
   26        struct extended_info {
 
   35                ext = (
struct extended_info *) calloc(1, 
sizeof(*ext));
 
   40                info->id = update->
id;
 
   48                if (!ext->props_storage) {
 
   50                        info->props = &ext->props_storage->dict;
 
   57                free((
void *) info->params);
 
   61                        memcpy(info->params, update->
params, size);
 
 
   72        struct extended_info {
 
   73                struct pw_properties *props_storage;
 
   78        free((
void *) info->params);
 
 
   86        struct extended_info {
 
   95                ext = (
struct extended_info *) calloc(1, 
sizeof(*ext));
 
  100                info->id = update->
id;
 
  101                info->name = strdup(update->name);
 
  104                info->flags = update->
flags;
 
  118                if (!ext->props_storage) {
 
  120                        info->props = &ext->props_storage->dict;
 
  127                free((
void *) info->params);
 
  131                        memcpy(info->params, update->
params, size);
 
 
  142        struct extended_info {
 
  143                struct pw_properties *props_storage;
 
  149        free(info->media_class);
 
  150        free((
void *) info->params);
 
 
  158        struct extended_info {
 
  167                ext = (
struct extended_info *) calloc(1, 
sizeof(*ext));
 
  172                info->id = update->
id;
 
  174                info->name = strdup(update->name);
 
  182                free(info->link_params);
 
  187                if (!ext->props_storage) {
 
  189                        info->props = &ext->props_storage->dict;
 
  196                free((
void *) info->params);
 
  200                        memcpy(info->params, update->
params, size);
 
 
  211        struct extended_info {
 
  212                struct pw_properties *props_storage;
 
  218        free(info->link_params);
 
  219        free((
void *) info->params);
 
 
  228        struct extended_info {
 
  237                ext = (
struct extended_info *) calloc(1, 
sizeof(*ext));
 
  242                info->id = update->
id;
 
  255                info->state = update->
state;
 
  257                info->error = update->
error ? strdup(update->
error) : NULL;
 
  260                if (!ext->props_storage) {
 
  262                        info->props = &ext->props_storage->dict;
 
  269                free((
void *) info->params);
 
  273                        memcpy(info->params, update->
params, size);
 
 
  284        struct extended_info {
 
  285                struct pw_properties *props_storage;
 
  291        free((
void *) info->params);
 
 
void pw_properties_free(struct pw_properties *properties)
Free a properties object.
Definition properties.c:558
struct pw_properties * pw_properties_new(const char *key,...)
Make a new properties object.
Definition properties.c:97
int pw_properties_update(struct pw_properties *props, const struct spa_dict *dict)
Update properties.
Definition properties.c:477
void pw_properties_clear(struct pw_properties *properties)
Clear a properties object.
Definition properties.c:456
#define PW_ENDPOINT_STREAM_CHANGE_MASK_PARAMS
Definition introspect.h:91
static void pw_endpoint_info_free(struct pw_endpoint_info *info)
Definition introspect-funcs.h:144
#define PW_SESSION_CHANGE_MASK_PROPS
Definition introspect.h:39
#define PW_ENDPOINT_CHANGE_MASK_SESSION
Definition introspect.h:64
#define PW_ENDPOINT_STREAM_CHANGE_MASK_PROPS
Definition introspect.h:89
#define PW_ENDPOINT_CHANGE_MASK_STREAMS
Definition introspect.h:62
static void pw_session_info_free(struct pw_session_info *info)
Definition introspect-funcs.h:74
static struct pw_session_info * pw_session_info_update(struct pw_session_info *info, const struct pw_session_info *update)
Definition introspect-funcs.h:27
#define PW_ENDPOINT_CHANGE_MASK_PROPS
Definition introspect.h:66
#define PW_ENDPOINT_LINK_CHANGE_MASK_PARAMS
Definition introspect.h:116
static struct pw_endpoint_stream_info * pw_endpoint_stream_info_update(struct pw_endpoint_stream_info *info, const struct pw_endpoint_stream_info *update)
Definition introspect-funcs.h:159
static struct pw_endpoint_link_info * pw_endpoint_link_info_update(struct pw_endpoint_link_info *info, const struct pw_endpoint_link_info *update)
Definition introspect-funcs.h:229
#define PW_ENDPOINT_CHANGE_MASK_PARAMS
Definition introspect.h:68
#define PW_ENDPOINT_LINK_CHANGE_MASK_PROPS
Definition introspect.h:114
#define PW_SESSION_CHANGE_MASK_PARAMS
Definition introspect.h:41
static void pw_endpoint_stream_info_free(struct pw_endpoint_stream_info *info)
Definition introspect-funcs.h:213
static void pw_endpoint_link_info_free(struct pw_endpoint_link_info *info)
Definition introspect-funcs.h:286
#define PW_ENDPOINT_STREAM_CHANGE_MASK_LINK_PARAMS
Definition introspect.h:87
static struct pw_endpoint_info * pw_endpoint_info_update(struct pw_endpoint_info *info, const struct pw_endpoint_info *update)
Definition introspect-funcs.h:87
#define PW_ENDPOINT_LINK_CHANGE_MASK_STATE
Definition introspect.h:112
SPA_API_POD_BUILDER struct spa_pod * spa_pod_copy(const struct spa_pod *pod)
Copy a pod structure.
Definition builder.h:732
#define SPA_CONTAINER_OF(p, t, m)
Definition defs.h:235
pipewire/extensions/session-manager/introspect.h
Definition introspect.h:50
struct spa_param_info * params
parameters
Definition introspect.h:75
uint32_t id
the endpoint id (global)
Definition introspect.h:54
uint64_t change_mask
bitfield of changed fields since last call
Definition introspect.h:71
enum pw_direction direction
direction of the endpoint
Definition introspect.h:57
uint32_t n_params
number of items in params
Definition introspect.h:76
uint32_t flags
additional flags
Definition introspect.h:60
char * media_class
media class of the endpoint
Definition introspect.h:56
uint32_t session_id
the id of the controlling session
Definition introspect.h:73
uint32_t n_streams
number of streams available
Definition introspect.h:72
Definition introspect.h:101
uint32_t id
the link id (global)
Definition introspect.h:105
uint64_t change_mask
bitfield of changed fields since last call
Definition introspect.h:119
uint32_t output_endpoint_id
the output endpoint id (global)
Definition introspect.h:107
uint32_t input_endpoint_id
the input endpoint id (global)
Definition introspect.h:109
char * error
error string if state == ERROR
Definition introspect.h:121
struct spa_param_info * params
parameters
Definition introspect.h:123
enum pw_endpoint_link_state state
the state of the link
Definition introspect.h:120
uint32_t n_params
number of items in params
Definition introspect.h:124
uint32_t output_stream_id
the output stream id (local or global)
Definition introspect.h:108
uint32_t input_stream_id
the input stream id (local or global)
Definition introspect.h:110
uint32_t session_id
the session id (global)
Definition introspect.h:106
Definition introspect.h:79
uint32_t n_params
number of items in params
Definition introspect.h:98
struct spa_param_info * params
parameters
Definition introspect.h:97
uint32_t endpoint_id
the endpoint id (global)
Definition introspect.h:84
struct spa_pod * link_params
information for linking this stream
Definition introspect.h:95
uint32_t id
the stream id (local or global)
Definition introspect.h:83
uint64_t change_mask
bitfield of changed fields since last call
Definition introspect.h:94
Definition properties.h:39
Definition introspect.h:33
struct spa_param_info * params
parameters
Definition introspect.h:46
uint64_t change_mask
bitfield of changed fields since last call
Definition introspect.h:44
uint32_t id
the session id (global)
Definition introspect.h:37
uint32_t n_params
number of items in params
Definition introspect.h:47
information about a parameter
Definition param.h:51