PipeWire  0.1.4
pw_node Class Reference

PipeWire node class. More...

Collaboration diagram for pw_node:

Public Member Functions

const char * pw_node_state_as_string (enum pw_node_state state)
 Convert a pw_node_state to a readable string. More...
 
void pw_node_destroy (struct pw_node *node)
 Destroy a node. More...
 
struct pw_portpw_node_get_free_port (struct pw_node *node, enum pw_direction direction)
 pw_node_get_free_port: More...
 
int pw_node_set_state (struct pw_node *node, enum pw_node_state state)
 Set th node state. More...
 
void pw_node_update_state (struct pw_node *node, enum pw_node_state state, char *error)
 Update the node state. More...
 
struct pw_nodepw_node_new (struct pw_core *core, struct pw_resource *owner, struct pw_global *parent, const char *name, struct pw_properties *properties, size_t user_data_size)
 Create a new node. More...
 

Data Fields

struct pw_corecore
 core object More...
 
struct spa_list link
 link in core node_list More...
 
struct pw_globalglobal
 global for this node More...
 
struct pw_resourceowner
 owner resource if any More...
 
struct pw_propertiesproperties
 properties of the node More...
 
struct pw_node_info info
 introspectable node info More...
 
bool live
 if the node is live More...
 
struct spa_clock * clock
 handle to SPA clock if any More...
 
struct spa_list resource_list
 list of resources for this node More...
 
const struct pw_node_implementationimplementation
 Implementation of core node functions. More...
 
void * implementation_data
 
struct spa_list input_ports
 list of input ports More...
 
struct pw_map input_port_map
 map from port_id to port More...
 
uint32_t n_used_input_links
 number of active input links More...
 
uint32_t idle_used_input_links
 number of active input to be idle More...
 
struct spa_list output_ports
 list of output ports More...
 
struct pw_map output_port_map
 map from port_id to port More...
 
uint32_t n_used_output_links
 number of active output links More...
 
uint32_t idle_used_output_links
 number of active output to be idle More...
 
struct spa_hook_list listener_list
 
struct pw_loopdata_loop
 the data loop for this node More...
 
struct {
   struct spa_graph *   graph
 
   struct spa_graph_node   node
 
rt
 
void * user_data
 extra user data More...
 

Detailed Description

PipeWire node class.

Member Function Documentation

◆ pw_node_destroy()

void pw_node_destroy ( struct pw_node node)

Destroy a node.

Parameters
nodea node to destroy

Remove node. This will stop the transfer on the node and free the resources allocated by node.

References data_loop, listener_list, pw_port::port, and pw_loop_invoke.

◆ pw_node_get_free_port()

struct pw_port * pw_node_get_free_port ( struct pw_node node,
enum pw_direction  direction 
)

◆ pw_node_new()

struct pw_node * pw_node_new ( struct pw_core core,
struct pw_resource owner,
struct pw_global parent,
const char *  name,
struct pw_properties properties,
size_t  user_data_size 
)

Create a new node.

Parameters
corethe core
owneroptional owner
parentoptional parent
namenode name
propertiesextra properties
user_data_sizeuser data size

◆ pw_node_set_state()

int pw_node_set_state ( struct pw_node node,
enum pw_node_state  state 
)

Set th node state.

Parameters
nodea pw_node
statea pw_node_state
Returns
0 on success < 0 on error

Set the state of node to state.

References listener_list, pw_node_state_as_string(), PW_NODE_STATE_CREATING, and PW_NODE_STATE_SUSPENDED.

◆ pw_node_state_as_string()

const char * pw_node_state_as_string ( enum pw_node_state  state)

Convert a pw_node_state to a readable string.

◆ pw_node_update_state()

void pw_node_update_state ( struct pw_node node,
enum pw_node_state  state,
char *  error 
)

Update the node state.

Parameters
nodea pw_node
statea pw_node_state
errorerror when state is PW_NODE_STATE_ERROR

Update the state of a node. This method is used from inside node itself.

References pw_node_info::error, info, pw_node_state_as_string(), PW_NODE_STATE_IDLE, and pw_node_info::state.

Field Documentation

◆ clock

struct spa_clock* pw_node::clock

handle to SPA clock if any

Referenced by pw_link_new().

◆ core

struct pw_core* pw_node::core

core object

Referenced by pw_link_new(), pw_node_get_core(), and pw_node_new().

◆ data_loop

struct pw_loop* pw_node::data_loop

◆ global

struct pw_global* pw_node::global

global for this node

Referenced by pw_core::pw_core_find_port(), pw_link_new(), and pw_node_get_global().

◆ graph

struct spa_graph* pw_node::graph

Referenced by pw_port_add().

◆ idle_used_input_links

uint32_t pw_node::idle_used_input_links

number of active input to be idle

Referenced by pw_link_inc_idle().

◆ idle_used_output_links

uint32_t pw_node::idle_used_output_links

number of active output to be idle

Referenced by pw_link_inc_idle().

◆ implementation

const struct pw_node_implementation* pw_node::implementation

Implementation of core node functions.

Referenced by pw_node_get_free_port(), pw_node_set_implementation(), and pw_port_set_implementation().

◆ implementation_data

void* pw_node::implementation_data

◆ info

◆ input_port_map

struct pw_map pw_node::input_port_map

map from port_id to port

Referenced by pw_node_find_port(), pw_node_get_free_port(), pw_node_new(), and pw_port_add().

◆ input_ports

struct spa_list pw_node::input_ports

◆ link

struct spa_list pw_node::link

link in core node_list

Referenced by pw_core::pw_core_find_port().

◆ listener_list

◆ live

bool pw_node::live

if the node is live

Referenced by pw_link_new().

◆ n_used_input_links

uint32_t pw_node::n_used_input_links

number of active input links

◆ n_used_output_links

uint32_t pw_node::n_used_output_links

number of active output links

◆ node

struct spa_graph_node pw_node::node

◆ output_port_map

struct pw_map pw_node::output_port_map

map from port_id to port

Referenced by pw_node_find_port(), pw_node_get_free_port(), pw_node_new(), and pw_port_add().

◆ output_ports

struct spa_list pw_node::output_ports

list of output ports

Referenced by pw_node_for_each_port(), pw_node_get_free_port(), pw_node_new(), and pw_port_add().

◆ owner

struct pw_resource* pw_node::owner

owner resource if any

Referenced by pw_node_get_owner(), and pw_node_new().

◆ properties

struct pw_properties* pw_node::properties

◆ resource_list

struct spa_list pw_node::resource_list

list of resources for this node

Referenced by pw_link_new(), pw_node_new(), and pw_node_update_properties().

◆ rt

struct { ... } pw_node::rt

◆ user_data

void* pw_node::user_data

extra user data

Referenced by pw_link_new(), pw_node_get_user_data(), and pw_node_new().


The documentation for this class was generated from the following files: