20 #ifndef __PIPEWIRE_PORT_H__ 21 #define __PIPEWIRE_PORT_H__ 27 #define PW_TYPE__Port "PipeWire:Object:Port" 28 #define PW_TYPE_PORT_BASE PW_TYPE__Port ":" 32 #include <spa/buffer.h> 61 #define PW_VERSION_PORT_IMPLEMENTATION 0 64 int (*
set_io) (
void *data,
struct spa_port_io *io);
67 struct spa_format **format,
68 const struct spa_format *filter,
71 int (*
set_format) (
void *data, uint32_t flags,
const struct spa_format *format);
73 int (*
get_format) (
void *data,
const struct spa_format **format);
75 int (*
get_info) (
void *data,
const struct spa_port_info **info);
77 int (*
enum_params) (
void *data, uint32_t index,
struct spa_param **param);
79 int (*
set_param) (
void *data,
struct spa_param *param);
81 int (*
use_buffers) (
void *data,
struct spa_buffer **buffers, uint32_t n_buffers);
84 struct spa_param **params, uint32_t n_params,
85 struct spa_buffer **buffers, uint32_t *n_buffers);
92 #define PW_VERSION_PORT_EVENTS 0 95 void (*destroy) (
void *data);
97 void (*free) (
void *data);
105 void (*properties_changed) (
void *data,
const struct pw_properties *properties);
114 size_t user_data_size);
137 struct spa_hook *listener,
148 struct spa_format **format,
149 const struct spa_format *filter,
172 struct spa_param **params, uint32_t n_params,
173 struct spa_buffer **buffers, uint32_t *n_buffers);
int(* get_format)(void *data, const struct spa_format **format)
Definition: port.h:73
A collection of key/value pairs.
Definition: properties.h:38
const struct pw_node_implementation * implementation
Implementation of core node functions.
Definition: private.h:221
void * pw_port_get_user_data(struct pw_port *port)
Definition: port.c:253
int(* get_info)(void *data, const struct spa_port_info **info)
Definition: port.h:75
uint32_t pw_port_get_id(struct pw_port *port)
Get the port id.
Definition: port.c:212
int(* send_command)(void *data, struct spa_command *command)
Definition: port.h:88
int pw_port_set_format(struct pw_port *port, uint32_t flags, const struct spa_format *format)
Definition: port.c:383
int(* enum_formats)(void *data, struct spa_format **format, const struct spa_format *filter, int32_t index)
Definition: port.h:66
int pw_port_use_buffers(struct pw_port *port, struct spa_buffer **buffers, uint32_t n_buffers)
Definition: port.c:452
int pw_port_get_format(struct pw_port *port, const struct spa_format **format)
Definition: port.c:412
struct pw_properties * properties
Definition: private.h:253
struct spa_dict dict
Definition: properties.h:39
int pw_port_alloc_buffers(struct pw_port *port, struct spa_param **params, uint32_t n_params, struct spa_buffer **buffers, uint32_t *n_buffers)
Definition: port.c:491
int pw_port_get_info(struct pw_port *port, const struct spa_port_info **info)
Definition: port.c:422
int pw_port_set_param(struct pw_port *port, struct spa_param *param)
Definition: port.c:442
struct pw_node_info info
introspectable node info
Definition: private.h:213
void pw_port_add(struct pw_port *port, struct pw_node *node)
Definition: port.c:271
void pw_port_add_listener(struct pw_port *port, struct spa_hook *listener, const struct pw_port_events *events, void *data)
Definition: port.c:245
void pw_port_destroy(struct pw_port *port)
Definition: port.c:318
uint32_t version
Definition: port.h:93
int pw_port_enum_formats(struct pw_port *port, struct spa_format **format, const struct spa_format *filter, int32_t index)
Definition: port.c:370
struct spa_graph_node node
Definition: private.h:240
PipeWire node class.
Definition: private.h:205
const struct pw_properties * pw_port_get_properties(struct pw_port *port)
Definition: port.c:217
int pw_port_enum_params(struct pw_port *port, uint32_t index, struct spa_param **param)
Definition: port.c:432
struct spa_list link
link in core link_list
Definition: private.h:163
void pw_port_update_properties(struct pw_port *port, const struct spa_dict *dict)
Definition: port.c:222
uint32_t port_id
port id
Definition: private.h:252
int(* set_param)(void *data, struct spa_param *param)
Definition: port.h:79
int(* set_io)(void *data, struct spa_port_io *io)
Definition: port.h:64
int(* enum_params)(void *data, uint32_t index, struct spa_param **param)
Definition: port.h:77
pw_port_state
Definition: port.h:51
int(* use_buffers)(void *data, struct spa_buffer **buffers, uint32_t n_buffers)
Definition: port.h:81
struct pw_port * pw_port_new(enum pw_direction direction, uint32_t port_id, struct pw_properties *properties, size_t user_data_size)
Definition: port.c:143
int(* reuse_buffer)(void *data, uint32_t buffer_id)
Definition: port.h:86
PipeWire link interface.
Definition: private.h:161
uint32_t version
Definition: port.h:62
enum pw_direction pw_port_get_direction(struct pw_port *port)
Get the port direction.
Definition: port.c:207
enum pw_direction direction
port direction
Definition: private.h:251
struct spa_graph_port port
Definition: private.h:275
void pw_port_set_implementation(struct pw_port *port, const struct pw_port_implementation *implementation, void *data)
Definition: port.c:237
struct pw_node * pw_port_get_node(struct pw_port *port)
Get the port parent node or NULL when not yet set.
Definition: port.c:232
int(* alloc_buffers)(void *data, struct spa_param **params, uint32_t n_params, struct spa_buffer **buffers, uint32_t *n_buffers)
Definition: port.h:83
The port object.
Definition: private.h:246
int(* set_format)(void *data, uint32_t flags, const struct spa_format *format)
Definition: port.h:71
pw_direction
The direction of a port.
Definition: introspect.h:47
enum pw_link_state state
link state
Definition: private.h:169