PipeWire: Client Node

PipeWire 1.0.3

Loading...
Searching...
No Matches
Files | Data Structures | Macros | Functions | Variables
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 5
#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.
#define | pw_client_node_port_update(c, ...) pw_client_node_method(c,port_update,0,__VA_ARGS__)
| Update a node port.
#define | pw_client_node_set_active(c, ...) pw_client_node_method(c,set_active,0,__VA_ARGS__)
| Activate or deactivate the node.
#define | pw_client_node_event(c, ...) pw_client_node_method(c,event,0,__VA_ARGS__)
| Send an event to the node.
#define | pw_client_node_port_buffers(c, ...) pw_client_node_method(c,port_buffers,0,__VA_ARGS__)
| Send allocated buffers.

## 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.
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 5

## ◆ 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 )
| 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_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