5#ifndef PIPEWIRE_EXT_CLIENT_NODE_H 
    6#define PIPEWIRE_EXT_CLIENT_NODE_H 
   23#define PW_TYPE_INTERFACE_ClientNode            PW_TYPE_INFO_INTERFACE_BASE "ClientNode" 
   30#define PW_VERSION_CLIENT_NODE                  6 
   33#ifndef PW_API_CLIENT_NODE_IMPL 
   34#define PW_API_CLIENT_NODE_IMPL static inline 
   37#define PW_EXTENSION_MODULE_CLIENT_NODE         PIPEWIRE_MODULE_PREFIX "module-client-node" 
   47#define PW_CLIENT_NODE_EVENT_TRANSPORT          0 
   48#define PW_CLIENT_NODE_EVENT_SET_PARAM          1 
   49#define PW_CLIENT_NODE_EVENT_SET_IO             2 
   50#define PW_CLIENT_NODE_EVENT_EVENT              3 
   51#define PW_CLIENT_NODE_EVENT_COMMAND            4 
   52#define PW_CLIENT_NODE_EVENT_ADD_PORT           5 
   53#define PW_CLIENT_NODE_EVENT_REMOVE_PORT        6 
   54#define PW_CLIENT_NODE_EVENT_PORT_SET_PARAM     7 
 
   55#define PW_CLIENT_NODE_EVENT_PORT_USE_BUFFERS   8 
   56#define PW_CLIENT_NODE_EVENT_PORT_SET_IO        9 
   57#define PW_CLIENT_NODE_EVENT_SET_ACTIVATION     10 
   58#define PW_CLIENT_NODE_EVENT_PORT_SET_MIX_INFO  11 
   59#define PW_CLIENT_NODE_EVENT_NUM                12 
   63#define PW_VERSION_CLIENT_NODE_EVENTS           1 
   93                          uint32_t 
id, uint32_t flags,
 
  106        int (*
set_io) (
void *data,
 
  156                                uint32_t 
id, uint32_t flags,
 
  230#define PW_CLIENT_NODE_METHOD_ADD_LISTENER      0 
  231#define PW_CLIENT_NODE_METHOD_GET_NODE          1 
  232#define PW_CLIENT_NODE_METHOD_UPDATE            2 
  233#define PW_CLIENT_NODE_METHOD_PORT_UPDATE       3 
  234#define PW_CLIENT_NODE_METHOD_SET_ACTIVE        4 
  235#define PW_CLIENT_NODE_METHOD_EVENT             5 
  236#define PW_CLIENT_NODE_METHOD_PORT_BUFFERS      6 
  237#define PW_CLIENT_NODE_METHOD_NUM               7 
  241#define PW_VERSION_CLIENT_NODE_METHODS          0 
  250        struct pw_node * (*get_node) (
void *object, uint32_t 
version, 
size_t user_data_size);
 
 
  261        int (*
update) (
void *object,
 
  262#define PW_CLIENT_NODE_UPDATE_PARAMS            (1 << 0) 
  263#define PW_CLIENT_NODE_UPDATE_INFO              (1 << 1) 
  264                        uint32_t change_mask,
 
  283#define PW_CLIENT_NODE_PORT_UPDATE_PARAMS            (1 << 0) 
  284#define PW_CLIENT_NODE_PORT_UPDATE_INFO              (1 << 1) 
  285                             uint32_t change_mask,
 
  292        int (*
set_active) (
void *object, 
bool active);
 
  322                        get_node, 0, version, user_data_size);
 
  325                        uint32_t change_mask,
 
  326                        uint32_t n_params, 
const struct spa_pod **params,
 
  330                        update, 0, change_mask, n_params, params, info);
 
  334                             uint32_t change_mask,
 
  335                             uint32_t n_params, 
const struct spa_pod **params,
 
  339                        port_update, 0, direction, port_id, change_mask, n_params, params, info);
 
  344                        set_active, 0, active);
 
 
  353                          uint32_t mix_id, uint32_t n_buffers, 
struct spa_buffer **buffers)
 
 
  356                        port_buffers, 0, direction, port_id, mix_id, n_buffers, buffers);
 
 
PW_API_CLIENT_NODE_IMPL int pw_client_node_set_active(struct pw_client_node *object, bool active)
Definition client-node.h:377
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)
Definition client-node.h:368
int(* 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.
Definition client-node.h:293
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)
Definition client-node.h:360
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)
Definition client-node.h:346
int(* 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.
Definition client-node.h:314
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)
Definition client-node.h:387
PW_API_CLIENT_NODE_IMPL int pw_client_node_event(struct pw_client_node *object, const struct spa_event *event)
Definition client-node.h:382
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)
Definition client-node.h:355
#define PW_API_CLIENT_NODE_IMPL
Definition client-node.h:42
uint32_t id
Definition core.h:432
#define spa_api_method_r(rtype, def, type, o, method, version,...)
Definition hook.h:291
spa_direction
Definition defs.h:106
information about a buffer
Definition client-node.h:49
uint32_t size
size in memory
Definition client-node.h:52
uint32_t mem_id
the memory id for the metadata
Definition client-node.h:50
uint32_t offset
offset in memory
Definition client-node.h:51
Client Node events
Definition client-node.h:84
int(* port_set_io)(void *data, enum spa_direction direction, uint32_t port_id, uint32_t mix_id, uint32_t id, uint32_t mem_id, uint32_t offset, uint32_t size)
Configure the io area with id of port_id.
Definition client-node.h:208
int(* port_use_buffers)(void *data, enum spa_direction direction, uint32_t port_id, uint32_t mix_id, uint32_t flags, uint32_t n_buffers, struct pw_client_node_buffer *buffers)
Notify the port of buffers.
Definition client-node.h:190
int(* remove_port)(void *data, enum spa_direction direction, uint32_t port_id)
A port was removed from the node.
Definition client-node.h:164
uint32_t version
Definition client-node.h:87
int(* port_set_param)(void *data, enum spa_direction direction, uint32_t port_id, uint32_t id, uint32_t flags, const struct spa_pod *param)
A parameter was configured on the port.
Definition client-node.h:176
int(* event)(void *data, const struct spa_event *event)
Receive an event from the client node.
Definition client-node.h:137
int(* set_activation)(void *data, uint32_t node_id, int signalfd, uint32_t mem_id, uint32_t offset, uint32_t size)
Notify the activation record of the next node to trigger.
Definition client-node.h:227
int(* port_set_mix_info)(void *data, enum spa_direction direction, uint32_t port_id, uint32_t mix_id, uint32_t peer_id, const struct spa_dict *props)
Notify about the peer of mix_id.
Definition client-node.h:245
int(* command)(void *data, const struct spa_command *command)
Notify of a new node command.
Definition client-node.h:143
int(* set_io)(void *data, uint32_t id, uint32_t mem_id, uint32_t offset, uint32_t size)
Configure an IO area for the client.
Definition client-node.h:129
int(* add_port)(void *data, enum spa_direction direction, uint32_t port_id, const struct spa_dict *props)
A new port was added to the node.
Definition client-node.h:154
int(* set_param)(void *data, uint32_t id, uint32_t flags, const struct spa_pod *param)
Notify of a property change.
Definition client-node.h:115
int(* transport)(void *data, int readfd, int writefd, uint32_t mem_id, uint32_t offset, uint32_t size)
Notify of a new transport area.
Definition client-node.h:99
Client Node methods
Definition client-node.h:271
int(* event)(void *object, const struct spa_event *event)
Send an event to the node.
Definition client-node.h:333
int(* add_listener)(void *object, struct spa_hook *listener, const struct pw_client_node_events *events, void *data)
Definition client-node.h:276
int(* port_buffers)(void *object, enum spa_direction direction, uint32_t port_id, uint32_t mix_id, uint32_t n_buffers, struct spa_buffer **buffers)
Send allocated buffers.
Definition client-node.h:338
uint32_t version
Definition client-node.h:274
int(* set_active)(void *object, bool active)
Activate or deactivate the node.
Definition client-node.h:328
A Buffer.
Definition buffer.h:110
A hook, contains the structure with functions and the data passed to the functions.
Definition hook.h:427
Node information structure.
Definition node.h:58
Port information structure.
Definition node.h:103