PipeWire 1.4.1
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Client Node

Client node interface More...

Files

file  client-node.h
 pipewire/extensions/client-node.h
 

Data Structures

struct  pw_client_node_buffer
 information about a buffer More...
 
struct  pw_client_node_events
 Client Node events More...
 
struct  pw_client_node_methods
 Client Node methods More...
 
struct  pw_client_node
 

Macros

#define PW_TYPE_INTERFACE_ClientNode   PW_TYPE_INFO_INTERFACE_BASE "ClientNode"
 
#define PW_VERSION_CLIENT_NODE   6
 
#define PW_API_CLIENT_NODE_IMPL   static inline
 
#define PW_EXTENSION_MODULE_CLIENT_NODE   PIPEWIRE_MODULE_PREFIX "module-client-node"
 
#define PW_CLIENT_NODE_EVENT_TRANSPORT   0
 
#define PW_CLIENT_NODE_EVENT_SET_PARAM   1
 
#define PW_CLIENT_NODE_EVENT_SET_IO   2
 
#define PW_CLIENT_NODE_EVENT_EVENT   3
 
#define PW_CLIENT_NODE_EVENT_COMMAND   4
 
#define PW_CLIENT_NODE_EVENT_ADD_PORT   5
 
#define PW_CLIENT_NODE_EVENT_REMOVE_PORT   6
 
#define PW_CLIENT_NODE_EVENT_PORT_SET_PARAM   7
 
#define PW_CLIENT_NODE_EVENT_PORT_USE_BUFFERS   8
 
#define PW_CLIENT_NODE_EVENT_PORT_SET_IO   9
 
#define PW_CLIENT_NODE_EVENT_SET_ACTIVATION   10
 
#define PW_CLIENT_NODE_EVENT_PORT_SET_MIX_INFO   11
 
#define PW_CLIENT_NODE_EVENT_NUM   12
 
#define PW_VERSION_CLIENT_NODE_EVENTS   1
 
#define PW_CLIENT_NODE_METHOD_ADD_LISTENER   0
 
#define PW_CLIENT_NODE_METHOD_GET_NODE   1
 
#define PW_CLIENT_NODE_METHOD_UPDATE   2
 
#define PW_CLIENT_NODE_METHOD_PORT_UPDATE   3
 
#define PW_CLIENT_NODE_METHOD_SET_ACTIVE   4
 
#define PW_CLIENT_NODE_METHOD_EVENT   5
 
#define PW_CLIENT_NODE_METHOD_PORT_BUFFERS   6
 
#define PW_CLIENT_NODE_METHOD_NUM   7
 
#define PW_VERSION_CLIENT_NODE_METHODS   0
 

Functions

PW_API_CLIENT_NODE_IMPL int pw_client_node_add_listener (struct pw_client_node *object, struct spa_hook *listener, const struct pw_client_node_events *events, void *data)
 
PW_API_CLIENT_NODE_IMPL struct pw_nodepw_client_node_get_node (struct pw_client_node *p, uint32_t version, size_t user_data_size)
 
PW_API_CLIENT_NODE_IMPL int pw_client_node_update (struct pw_client_node *object, uint32_t change_mask, uint32_t n_params, const struct spa_pod **params, const struct spa_node_info *info)
 
PW_API_CLIENT_NODE_IMPL int pw_client_node_port_update (struct pw_client_node *object, enum spa_direction direction, uint32_t port_id, uint32_t change_mask, uint32_t n_params, const struct spa_pod **params, const struct spa_port_info *info)
 
PW_API_CLIENT_NODE_IMPL int pw_client_node_set_active (struct pw_client_node *object, bool active)
 
PW_API_CLIENT_NODE_IMPL int pw_client_node_event (struct pw_client_node *object, const struct spa_event *event)
 
PW_API_CLIENT_NODE_IMPL int pw_client_node_port_buffers (struct pw_client_node *object, enum spa_direction direction, uint32_t port_id, uint32_t mix_id, uint32_t n_buffers, struct spa_buffer **buffers)
 

Variables

int(* pw_client_node_methods::update )(void *object, #define PW_CLIENT_NODE_UPDATE_PARAMS #define PW_CLIENT_NODE_UPDATE_INFO uint32_t change_mask, uint32_t n_params, const struct spa_pod **params, const struct spa_node_info *info)
 Update the node ports and properties.
 
int(* pw_client_node_methods::port_update )(void *object, enum spa_direction direction, uint32_t port_id, #define PW_CLIENT_NODE_PORT_UPDATE_PARAMS #define PW_CLIENT_NODE_PORT_UPDATE_INFO uint32_t change_mask, uint32_t n_params, const struct spa_pod **params, const struct spa_port_info *info)
 Update a node port.
 

Detailed Description

Client node interface

Macro Definition Documentation

◆ PW_TYPE_INTERFACE_ClientNode

#define PW_TYPE_INTERFACE_ClientNode   PW_TYPE_INFO_INTERFACE_BASE "ClientNode"

◆ PW_VERSION_CLIENT_NODE

#define PW_VERSION_CLIENT_NODE   6

◆ PW_API_CLIENT_NODE_IMPL

#define PW_API_CLIENT_NODE_IMPL   static inline

◆ PW_EXTENSION_MODULE_CLIENT_NODE

#define PW_EXTENSION_MODULE_CLIENT_NODE   PIPEWIRE_MODULE_PREFIX "module-client-node"

◆ PW_CLIENT_NODE_EVENT_TRANSPORT

#define PW_CLIENT_NODE_EVENT_TRANSPORT   0

◆ PW_CLIENT_NODE_EVENT_SET_PARAM

#define PW_CLIENT_NODE_EVENT_SET_PARAM   1

◆ PW_CLIENT_NODE_EVENT_SET_IO

#define PW_CLIENT_NODE_EVENT_SET_IO   2

◆ PW_CLIENT_NODE_EVENT_EVENT

#define PW_CLIENT_NODE_EVENT_EVENT   3

◆ PW_CLIENT_NODE_EVENT_COMMAND

#define PW_CLIENT_NODE_EVENT_COMMAND   4

◆ PW_CLIENT_NODE_EVENT_ADD_PORT

#define PW_CLIENT_NODE_EVENT_ADD_PORT   5

◆ PW_CLIENT_NODE_EVENT_REMOVE_PORT

#define PW_CLIENT_NODE_EVENT_REMOVE_PORT   6

◆ PW_CLIENT_NODE_EVENT_PORT_SET_PARAM

#define PW_CLIENT_NODE_EVENT_PORT_SET_PARAM   7

◆ PW_CLIENT_NODE_EVENT_PORT_USE_BUFFERS

#define PW_CLIENT_NODE_EVENT_PORT_USE_BUFFERS   8

◆ PW_CLIENT_NODE_EVENT_PORT_SET_IO

#define PW_CLIENT_NODE_EVENT_PORT_SET_IO   9

◆ PW_CLIENT_NODE_EVENT_SET_ACTIVATION

#define PW_CLIENT_NODE_EVENT_SET_ACTIVATION   10

◆ PW_CLIENT_NODE_EVENT_PORT_SET_MIX_INFO

#define PW_CLIENT_NODE_EVENT_PORT_SET_MIX_INFO   11

◆ PW_CLIENT_NODE_EVENT_NUM

#define PW_CLIENT_NODE_EVENT_NUM   12

◆ PW_VERSION_CLIENT_NODE_EVENTS

#define PW_VERSION_CLIENT_NODE_EVENTS   1

◆ PW_CLIENT_NODE_METHOD_ADD_LISTENER

#define PW_CLIENT_NODE_METHOD_ADD_LISTENER   0

◆ PW_CLIENT_NODE_METHOD_GET_NODE

#define PW_CLIENT_NODE_METHOD_GET_NODE   1

◆ PW_CLIENT_NODE_METHOD_UPDATE

#define PW_CLIENT_NODE_METHOD_UPDATE   2

◆ PW_CLIENT_NODE_METHOD_PORT_UPDATE

#define PW_CLIENT_NODE_METHOD_PORT_UPDATE   3

◆ PW_CLIENT_NODE_METHOD_SET_ACTIVE

#define PW_CLIENT_NODE_METHOD_SET_ACTIVE   4

◆ PW_CLIENT_NODE_METHOD_EVENT

#define PW_CLIENT_NODE_METHOD_EVENT   5

◆ PW_CLIENT_NODE_METHOD_PORT_BUFFERS

#define PW_CLIENT_NODE_METHOD_PORT_BUFFERS   6

◆ PW_CLIENT_NODE_METHOD_NUM

#define PW_CLIENT_NODE_METHOD_NUM   7

◆ PW_VERSION_CLIENT_NODE_METHODS

#define PW_VERSION_CLIENT_NODE_METHODS   0

Function Documentation

◆ pw_client_node_add_listener()

PW_API_CLIENT_NODE_IMPL int pw_client_node_add_listener ( struct pw_client_node * object,
struct spa_hook * listener,
const struct pw_client_node_events * events,
void * data )

◆ pw_client_node_get_node()

PW_API_CLIENT_NODE_IMPL struct pw_node * pw_client_node_get_node ( struct pw_client_node * p,
uint32_t version,
size_t user_data_size )

◆ pw_client_node_update()

PW_API_CLIENT_NODE_IMPL int pw_client_node_update ( struct pw_client_node * object,
uint32_t change_mask,
uint32_t n_params,
const struct spa_pod ** params,
const struct spa_node_info * info )

◆ pw_client_node_port_update()

PW_API_CLIENT_NODE_IMPL int pw_client_node_port_update ( struct pw_client_node * object,
enum spa_direction direction,
uint32_t port_id,
uint32_t change_mask,
uint32_t n_params,
const struct spa_pod ** params,
const struct spa_port_info * info )

◆ pw_client_node_set_active()

PW_API_CLIENT_NODE_IMPL int pw_client_node_set_active ( struct pw_client_node * object,
bool active )

◆ pw_client_node_event()

PW_API_CLIENT_NODE_IMPL int pw_client_node_event ( struct pw_client_node * object,
const struct spa_event * event )

◆ pw_client_node_port_buffers()

PW_API_CLIENT_NODE_IMPL int pw_client_node_port_buffers ( struct pw_client_node * object,
enum spa_direction direction,
uint32_t port_id,
uint32_t mix_id,
uint32_t n_buffers,
struct spa_buffer ** buffers )

Variable Documentation

◆ update

int(* pw_client_node_methods::update) (void *object, #define PW_CLIENT_NODE_UPDATE_PARAMS #define PW_CLIENT_NODE_UPDATE_INFO uint32_t change_mask, uint32_t n_params, const struct spa_pod **params, const struct spa_node_info *info)

Update the node ports and properties.

Update the maximum number of ports and the params of the client node.

Parameters
change_maskbitfield with changed parameters
max_input_portsnew max input ports
max_output_portsnew max output ports
paramsnew params

◆ port_update

int(* pw_client_node_methods::port_update) (void *object, enum spa_direction direction, uint32_t port_id, #define PW_CLIENT_NODE_PORT_UPDATE_PARAMS #define PW_CLIENT_NODE_PORT_UPDATE_INFO uint32_t change_mask, uint32_t n_params, const struct spa_pod **params, const struct spa_port_info *info)

Update a node port.

Update the information of one port of a node.

Parameters
directionthe direction of the port
port_idthe port id to update
change_maska bitfield of changed items
n_paramsnumber of port parameters
paramsarray of port parameters
infoport information