PipeWire  0.3.59
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   4
 
#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
 
#define pw_client_node_method(o, method, version, ...)
 
#define pw_client_node_add_listener(c, ...)   pw_client_node_method(c,add_listener,0,__VA_ARGS__)
 
#define pw_client_node_update(c, ...)   pw_client_node_method(c,update,0,__VA_ARGS__)
 Update the node ports and properties. More...
 
#define pw_client_node_port_update(c, ...)   pw_client_node_method(c,port_update,0,__VA_ARGS__)
 Update a node port. More...
 
#define pw_client_node_set_active(c, ...)   pw_client_node_method(c,set_active,0,__VA_ARGS__)
 Activate or deactivate the node. More...
 
#define pw_client_node_event(c, ...)   pw_client_node_method(c,event,0,__VA_ARGS__)
 Send an event to the node. More...
 
#define pw_client_node_port_buffers(c, ...)   pw_client_node_method(c,port_buffers,0,__VA_ARGS__)
 Send allocated buffers. More...
 

Functions

static struct pw_nodepw_client_node_get_node (struct pw_client_node *p, uint32_t version, size_t user_data_size)
 

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. More...
 
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. More...
 

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   4

◆ 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

◆ pw_client_node_method

#define pw_client_node_method (   o,
  method,
  version,
  ... 
)

◆ pw_client_node_add_listener

#define pw_client_node_add_listener (   c,
  ... 
)    pw_client_node_method(c,add_listener,0,__VA_ARGS__)

◆ pw_client_node_update

#define pw_client_node_update (   c,
  ... 
)    pw_client_node_method(c,update,0,__VA_ARGS__)

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
See also
pw_client_node_methods.update

◆ pw_client_node_port_update

#define pw_client_node_port_update (   c,
  ... 
)    pw_client_node_method(c,port_update,0,__VA_ARGS__)

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
See also
pw_client_node_methods.port_update

◆ pw_client_node_set_active

#define pw_client_node_set_active (   c,
  ... 
)    pw_client_node_method(c,set_active,0,__VA_ARGS__)

Activate or deactivate the node.

See also
pw_client_node_methods.set_active

◆ pw_client_node_event

#define pw_client_node_event (   c,
  ... 
)    pw_client_node_method(c,event,0,__VA_ARGS__)

Send an event to the node.

Parameters
eventthe event to send
See also
pw_client_node_methods.event

◆ pw_client_node_port_buffers

#define pw_client_node_port_buffers (   c,
  ... 
)    pw_client_node_method(c,port_buffers,0,__VA_ARGS__)

Send allocated buffers.

See also
pw_client_node_methods.port_buffers

Function Documentation

◆ pw_client_node_get_node()

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

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