Client Node
Extensions

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_node * | pw_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__)

See also
  pw_client_node_methods.add_listener

## 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_mask | bitfield with changed parameters
  max_input_ports | new max input ports
  max_output_ports | new max output ports
  params | new 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

  direction | the direction of the port
  port_id | the port id to update
  change_mask | a bitfield of changed items
  n_params | number of port parameters
  params | array of port parameters
  info | port 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

  event | the 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
| ) |  |

inline static

## 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_mask | bitfield with changed parameters
  max_input_ports | new max input ports
  max_output_ports | new max output ports
  params | new 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

  direction | the direction of the port
  port_id | the port id to update
  change_mask | a bitfield of changed items
  n_params | number of port parameters
  params | array of port parameters
  info | port information