PipeWire  0.3.33
SPA Nodes

A spa_node is a component that can consume and produce buffers. More...

Data Structures

struct  spa_io_buffers
 IO area to exchange buffers. More...
 
struct  spa_io_memory
 IO area to exchange a memory region. More...
 
struct  spa_io_range
 A range, suitable for input ports that can suggest a range to output ports. More...
 
struct  spa_io_clock
 Absolute time reporting. More...
 
struct  spa_io_video_size
 
struct  spa_io_latency
 latency reporting More...
 
struct  spa_io_sequence
 control stream, io area for SPA_IO_Control and SPA_IO_Notify More...
 
struct  spa_io_segment_bar
 bar and beat segment More...
 
struct  spa_io_segment_video
 video frame segment More...
 
struct  spa_io_segment
 A segment converts a running time to a segment (stream) position. More...
 
struct  spa_io_position
 The position information adds extra meaning to the raw clock times. More...
 
struct  spa_io_rate_match
 rate matching More...
 
struct  spa_node
 
struct  spa_node_info
 Node information structure. More...
 
struct  spa_port_info
 Port information structure. More...
 
struct  spa_result_node_error
 an error result More...
 
struct  spa_result_node_params
 the result of enum_params or port_enum_params. More...
 
struct  spa_node_events
 events from the spa_node. More...
 
struct  spa_node_callbacks
 Node callbacks. More...
 
struct  spa_node_methods
 Node methods. More...
 
struct  spa_result_node_params_data
 

Macros

#define SPA_NODE_COMMAND_ID(cmd)   SPA_COMMAND_ID(cmd, SPA_TYPE_COMMAND_Node)
 
#define SPA_NODE_COMMAND_INIT(id)   SPA_COMMAND_INIT(SPA_TYPE_COMMAND_Node, id)
 
#define SPA_NODE_EVENT_ID(ev)   SPA_EVENT_ID(ev, SPA_TYPE_EVENT_Node)
 
#define SPA_NODE_EVENT_INIT(id)   SPA_EVENT_INIT(SPA_TYPE_EVENT_Node, id)
 
#define SPA_IO_BUFFERS_INIT   (struct spa_io_buffers) { SPA_STATUS_OK, SPA_ID_INVALID, }
 
#define SPA_IO_MEMORY_INIT   (struct spa_io_memory) { SPA_STATUS_OK, 0, NULL, }
 
#define SPA_IO_POSITION_MAX_SEGMENTS   8
 the maximum number of segments visible in the future More...
 
#define SPA_KEY_NODE_NAME   "node.name"
 node keys More...
 
#define SPA_KEY_NODE_LATENCY   "node.latency"
 the requested node latency More...
 
#define SPA_KEY_NODE_MAX_LATENCY   "node.max-latency"
 maximum supported latency More...
 
#define SPA_KEY_NODE_DRIVER   "node.driver"
 the node can be a driver More...
 
#define SPA_KEY_NODE_ALWAYS_PROCESS   "node.always-process"
 call the process function even if not linked. More...
 
#define SPA_KEY_NODE_PAUSE_ON_IDLE   "node.pause-on-idle"
 if the node should be paused immediately when idle. More...
 
#define SPA_KEY_NODE_MONITOR   "node.monitor"
 the node has monitor ports More...
 
#define SPA_KEY_PORT_NAME   "port.name"
 port keys More...
 
#define SPA_KEY_PORT_ALIAS   "port.alias"
 a port alias More...
 
#define SPA_KEY_PORT_MONITOR   "port.monitor"
 this port is a monitor port More...
 
#define SPA_TYPE_INTERFACE_Node   SPA_TYPE_INFO_INTERFACE_BASE "Node"
 
#define SPA_VERSION_NODE   0
 
#define SPA_NODE_INFO_INIT()   (struct spa_node_info) { 0, }
 
#define SPA_PORT_INFO_INIT()   (struct spa_port_info) { 0, }
 
#define SPA_RESULT_TYPE_NODE_ERROR   1
 
#define SPA_RESULT_TYPE_NODE_PARAMS   2
 
#define SPA_NODE_EVENT_INFO   0
 
#define SPA_NODE_EVENT_PORT_INFO   1
 
#define SPA_NODE_EVENT_RESULT   2
 
#define SPA_NODE_EVENT_EVENT   3
 
#define SPA_NODE_EVENT_NUM   4
 
#define SPA_NODE_CALLBACK_READY   0
 
#define SPA_NODE_CALLBACK_REUSE_BUFFER   1
 
#define SPA_NODE_CALLBACK_XRUN   2
 
#define SPA_NODE_CALLBACK_NUM   3
 
#define SPA_NODE_PARAM_FLAG_TEST_ONLY   (1 << 0)
 flags that can be passed to set_param and port_set_param functions More...
 
#define SPA_NODE_PARAM_FLAG_FIXATE   (1 << 1)
 Fixate the non-optional unset fields. More...
 
#define SPA_NODE_PARAM_FLAG_NEAREST   (1 << 2)
 Allow set fields to be rounded to the nearest allowed field value. More...
 
#define SPA_NODE_BUFFERS_FLAG_ALLOC   (1 << 0)
 flags to pass to the use_buffers functions More...
 
#define SPA_NODE_METHOD_ADD_LISTENER   0
 
#define SPA_NODE_METHOD_SET_CALLBACKS   1
 
#define SPA_NODE_METHOD_SYNC   2
 
#define SPA_NODE_METHOD_ENUM_PARAMS   3
 
#define SPA_NODE_METHOD_SET_PARAM   4
 
#define SPA_NODE_METHOD_SET_IO   5
 
#define SPA_NODE_METHOD_SEND_COMMAND   6
 
#define SPA_NODE_METHOD_ADD_PORT   7
 
#define SPA_NODE_METHOD_REMOVE_PORT   8
 
#define SPA_NODE_METHOD_PORT_ENUM_PARAMS   9
 
#define SPA_NODE_METHOD_PORT_SET_PARAM   10
 
#define SPA_NODE_METHOD_PORT_USE_BUFFERS   11
 
#define SPA_NODE_METHOD_PORT_SET_IO   12
 
#define SPA_NODE_METHOD_PORT_REUSE_BUFFER   13
 
#define SPA_NODE_METHOD_PROCESS   14
 
#define SPA_NODE_METHOD_NUM   15
 
#define spa_node_method(o, method, version, ...)
 
#define spa_node_add_listener(n, ...)   spa_node_method(n, add_listener, 0, __VA_ARGS__)
 
#define spa_node_set_callbacks(n, ...)   spa_node_method(n, set_callbacks, 0, __VA_ARGS__)
 
#define spa_node_sync(n, ...)   spa_node_method(n, sync, 0, __VA_ARGS__)
 
#define spa_node_enum_params(n, ...)   spa_node_method(n, enum_params, 0, __VA_ARGS__)
 
#define spa_node_set_param(n, ...)   spa_node_method(n, set_param, 0, __VA_ARGS__)
 
#define spa_node_set_io(n, ...)   spa_node_method(n, set_io, 0, __VA_ARGS__)
 
#define spa_node_send_command(n, ...)   spa_node_method(n, send_command, 0, __VA_ARGS__)
 
#define spa_node_add_port(n, ...)   spa_node_method(n, add_port, 0, __VA_ARGS__)
 
#define spa_node_remove_port(n, ...)   spa_node_method(n, remove_port, 0, __VA_ARGS__)
 
#define spa_node_port_enum_params(n, ...)   spa_node_method(n, port_enum_params, 0, __VA_ARGS__)
 
#define spa_node_port_set_param(n, ...)   spa_node_method(n, port_set_param, 0, __VA_ARGS__)
 
#define spa_node_port_use_buffers(n, ...)   spa_node_method(n, port_use_buffers, 0, __VA_ARGS__)
 
#define spa_node_port_set_io(n, ...)   spa_node_method(n, port_set_io, 0, __VA_ARGS__)
 
#define spa_node_port_reuse_buffer(n, ...)   spa_node_method(n, port_reuse_buffer, 0, __VA_ARGS__)
 
#define spa_node_process(n)   spa_node_method(n, process, 0)
 
#define SPA_TYPE_INFO_IO   SPA_TYPE_INFO_ENUM_BASE "IO"
 
#define SPA_TYPE_INFO_IO_BASE   SPA_TYPE_INFO_IO ":"
 
#define SPA_TYPE_INFO_NodeEvent   SPA_TYPE_INFO_EVENT_BASE "Node"
 
#define SPA_TYPE_INFO_NODE_EVENT_BASE   SPA_TYPE_INFO_NodeEvent ":"
 
#define SPA_TYPE_INFO_NodeCommand   SPA_TYPE_INFO_COMMAND_BASE "Node"
 
#define SPA_TYPE_INFO_NODE_COMMAND_BASE   SPA_TYPE_INFO_NodeCommand ":"
 
#define spa_node_emit(hooks, method, version, ...)
 
#define spa_node_emit_info(hooks, ...)   spa_node_emit(hooks,info, 0, __VA_ARGS__)
 
#define spa_node_emit_port_info(hooks, ...)   spa_node_emit(hooks,port_info, 0, __VA_ARGS__)
 
#define spa_node_emit_result(hooks, ...)   spa_node_emit(hooks,result, 0, __VA_ARGS__)
 
#define spa_node_emit_event(hooks, ...)   spa_node_emit(hooks,event, 0, __VA_ARGS__)
 
#define spa_node_call(callbacks, method, version, ...)
 
#define spa_node_call_ready(hook, ...)   spa_node_call(hook, ready, 0, __VA_ARGS__)
 
#define spa_node_call_reuse_buffer(hook, ...)   spa_node_call(hook, reuse_buffer, 0, __VA_ARGS__)
 
#define spa_node_call_xrun(hook, ...)   spa_node_call(hook, xrun, 0, __VA_ARGS__)
 

Enumerations

enum  spa_node_command {
  SPA_NODE_COMMAND_Suspend, SPA_NODE_COMMAND_Pause, SPA_NODE_COMMAND_Start, SPA_NODE_COMMAND_Enable,
  SPA_NODE_COMMAND_Disable, SPA_NODE_COMMAND_Flush, SPA_NODE_COMMAND_Drain, SPA_NODE_COMMAND_Marker,
  SPA_NODE_COMMAND_ParamBegin, SPA_NODE_COMMAND_ParamEnd
}
 
enum  spa_node_event { SPA_NODE_EVENT_Error, SPA_NODE_EVENT_Buffering, SPA_NODE_EVENT_RequestRefresh }
 
enum  spa_io_type {
  SPA_IO_Invalid, SPA_IO_Buffers, SPA_IO_Range, SPA_IO_Clock,
  SPA_IO_Latency, SPA_IO_Control, SPA_IO_Notify, SPA_IO_Position,
  SPA_IO_RateMatch, SPA_IO_Memory
}
 IO areas. More...
 
enum  spa_io_position_state { SPA_IO_POSITION_STATE_STOPPED, SPA_IO_POSITION_STATE_STARTING, SPA_IO_POSITION_STATE_RUNNING }
 

Functions

void spa_result_func_node_params (void *data, int seq, int res, uint32_t type, const void *result)
 
int spa_node_enum_params_sync (struct spa_node *node, uint32_t id, uint32_t *index, const struct spa_pod *filter, struct spa_pod **param, struct spa_pod_builder *builder)
 
int spa_node_port_enum_params_sync (struct spa_node *node, enum spa_direction direction, uint32_t port_id, uint32_t id, uint32_t *index, const struct spa_pod *filter, struct spa_pod **param, struct spa_pod_builder *builder)
 

Variables

const struct spa_type_info spa_type_io []
 
const struct spa_type_info spa_type_node_event_id []
 
const struct spa_type_info spa_type_node_event []
 
const struct spa_type_info spa_type_node_command_id []
 
const struct spa_type_info spa_type_node_command []
 

Detailed Description

A spa_node is a component that can consume and produce buffers.

Macro Definition Documentation

◆ SPA_IO_BUFFERS_INIT

#define SPA_IO_BUFFERS_INIT   (struct spa_io_buffers) { SPA_STATUS_OK, SPA_ID_INVALID, }

◆ SPA_IO_MEMORY_INIT

#define SPA_IO_MEMORY_INIT   (struct spa_io_memory) { SPA_STATUS_OK, 0, NULL, }

◆ SPA_IO_POSITION_MAX_SEGMENTS

#define SPA_IO_POSITION_MAX_SEGMENTS   8

the maximum number of segments visible in the future

◆ SPA_KEY_NODE_ALWAYS_PROCESS

#define SPA_KEY_NODE_ALWAYS_PROCESS   "node.always-process"

call the process function even if not linked.

◆ SPA_KEY_NODE_DRIVER

#define SPA_KEY_NODE_DRIVER   "node.driver"

the node can be a driver

◆ SPA_KEY_NODE_LATENCY

#define SPA_KEY_NODE_LATENCY   "node.latency"

the requested node latency

◆ SPA_KEY_NODE_MAX_LATENCY

#define SPA_KEY_NODE_MAX_LATENCY   "node.max-latency"

maximum supported latency

◆ SPA_KEY_NODE_MONITOR

#define SPA_KEY_NODE_MONITOR   "node.monitor"

the node has monitor ports

◆ SPA_KEY_NODE_NAME

#define SPA_KEY_NODE_NAME   "node.name"

node keys

a node name

◆ SPA_KEY_NODE_PAUSE_ON_IDLE

#define SPA_KEY_NODE_PAUSE_ON_IDLE   "node.pause-on-idle"

if the node should be paused immediately when idle.

◆ SPA_KEY_PORT_ALIAS

#define SPA_KEY_PORT_ALIAS   "port.alias"

a port alias

◆ SPA_KEY_PORT_MONITOR

#define SPA_KEY_PORT_MONITOR   "port.monitor"

this port is a monitor port

◆ SPA_KEY_PORT_NAME

#define SPA_KEY_PORT_NAME   "port.name"

port keys

a port name

◆ spa_node_add_listener

#define spa_node_add_listener (   n,
  ... 
)    spa_node_method(n, add_listener, 0, __VA_ARGS__)

◆ spa_node_add_port

#define spa_node_add_port (   n,
  ... 
)    spa_node_method(n, add_port, 0, __VA_ARGS__)

◆ SPA_NODE_BUFFERS_FLAG_ALLOC

#define SPA_NODE_BUFFERS_FLAG_ALLOC   (1 << 0)

flags to pass to the use_buffers functions

Allocate memory for the buffers. This flag is ignored when the port does not have the SPA_PORT_FLAG_CAN_ALLOC_BUFFERS set.

◆ spa_node_call

#define spa_node_call (   callbacks,
  method,
  version,
  ... 
)
Value:
({ \
int _res = -ENOTSUP; \
spa_callbacks_call_res(callbacks, struct spa_node_callbacks, \
_res, method, version, ##__VA_ARGS__); \
_res; \
})

◆ spa_node_call_ready

#define spa_node_call_ready (   hook,
  ... 
)    spa_node_call(hook, ready, 0, __VA_ARGS__)

◆ spa_node_call_reuse_buffer

#define spa_node_call_reuse_buffer (   hook,
  ... 
)    spa_node_call(hook, reuse_buffer, 0, __VA_ARGS__)

◆ spa_node_call_xrun

#define spa_node_call_xrun (   hook,
  ... 
)    spa_node_call(hook, xrun, 0, __VA_ARGS__)

◆ SPA_NODE_CALLBACK_NUM

#define SPA_NODE_CALLBACK_NUM   3

◆ SPA_NODE_CALLBACK_READY

#define SPA_NODE_CALLBACK_READY   0

◆ SPA_NODE_CALLBACK_REUSE_BUFFER

#define SPA_NODE_CALLBACK_REUSE_BUFFER   1

◆ SPA_NODE_CALLBACK_XRUN

#define SPA_NODE_CALLBACK_XRUN   2

◆ SPA_NODE_COMMAND_ID

#define SPA_NODE_COMMAND_ID (   cmd)    SPA_COMMAND_ID(cmd, SPA_TYPE_COMMAND_Node)

◆ SPA_NODE_COMMAND_INIT

#define SPA_NODE_COMMAND_INIT (   id)    SPA_COMMAND_INIT(SPA_TYPE_COMMAND_Node, id)

◆ spa_node_emit

#define spa_node_emit (   hooks,
  method,
  version,
  ... 
)
Value:
method, version, ##__VA_ARGS__)

◆ spa_node_emit_event

#define spa_node_emit_event (   hooks,
  ... 
)    spa_node_emit(hooks,event, 0, __VA_ARGS__)

◆ spa_node_emit_info

#define spa_node_emit_info (   hooks,
  ... 
)    spa_node_emit(hooks,info, 0, __VA_ARGS__)

◆ spa_node_emit_port_info

#define spa_node_emit_port_info (   hooks,
  ... 
)    spa_node_emit(hooks,port_info, 0, __VA_ARGS__)

◆ spa_node_emit_result

#define spa_node_emit_result (   hooks,
  ... 
)    spa_node_emit(hooks,result, 0, __VA_ARGS__)

◆ spa_node_enum_params

#define spa_node_enum_params (   n,
  ... 
)    spa_node_method(n, enum_params, 0, __VA_ARGS__)

◆ SPA_NODE_EVENT_EVENT

#define SPA_NODE_EVENT_EVENT   3

◆ SPA_NODE_EVENT_ID

#define SPA_NODE_EVENT_ID (   ev)    SPA_EVENT_ID(ev, SPA_TYPE_EVENT_Node)

◆ SPA_NODE_EVENT_INFO

#define SPA_NODE_EVENT_INFO   0

◆ SPA_NODE_EVENT_INIT

#define SPA_NODE_EVENT_INIT (   id)    SPA_EVENT_INIT(SPA_TYPE_EVENT_Node, id)

◆ SPA_NODE_EVENT_NUM

#define SPA_NODE_EVENT_NUM   4

◆ SPA_NODE_EVENT_PORT_INFO

#define SPA_NODE_EVENT_PORT_INFO   1

◆ SPA_NODE_EVENT_RESULT

#define SPA_NODE_EVENT_RESULT   2

◆ SPA_NODE_INFO_INIT

#define SPA_NODE_INFO_INIT ( )    (struct spa_node_info) { 0, }

◆ spa_node_method

#define spa_node_method (   o,
  method,
  version,
  ... 
)
Value:
({ \
int _res = -ENOTSUP; \
struct spa_node *_n = o; \
spa_interface_call_res(&_n->iface, \
struct spa_node_methods, _res, \
method, version, ##__VA_ARGS__); \
_res; \
})

◆ SPA_NODE_METHOD_ADD_LISTENER

#define SPA_NODE_METHOD_ADD_LISTENER   0

◆ SPA_NODE_METHOD_ADD_PORT

#define SPA_NODE_METHOD_ADD_PORT   7

◆ SPA_NODE_METHOD_ENUM_PARAMS

#define SPA_NODE_METHOD_ENUM_PARAMS   3

◆ SPA_NODE_METHOD_NUM

#define SPA_NODE_METHOD_NUM   15

◆ SPA_NODE_METHOD_PORT_ENUM_PARAMS

#define SPA_NODE_METHOD_PORT_ENUM_PARAMS   9

◆ SPA_NODE_METHOD_PORT_REUSE_BUFFER

#define SPA_NODE_METHOD_PORT_REUSE_BUFFER   13

◆ SPA_NODE_METHOD_PORT_SET_IO

#define SPA_NODE_METHOD_PORT_SET_IO   12

◆ SPA_NODE_METHOD_PORT_SET_PARAM

#define SPA_NODE_METHOD_PORT_SET_PARAM   10

◆ SPA_NODE_METHOD_PORT_USE_BUFFERS

#define SPA_NODE_METHOD_PORT_USE_BUFFERS   11

◆ SPA_NODE_METHOD_PROCESS

#define SPA_NODE_METHOD_PROCESS   14

◆ SPA_NODE_METHOD_REMOVE_PORT

#define SPA_NODE_METHOD_REMOVE_PORT   8

◆ SPA_NODE_METHOD_SEND_COMMAND

#define SPA_NODE_METHOD_SEND_COMMAND   6

◆ SPA_NODE_METHOD_SET_CALLBACKS

#define SPA_NODE_METHOD_SET_CALLBACKS   1

◆ SPA_NODE_METHOD_SET_IO

#define SPA_NODE_METHOD_SET_IO   5

◆ SPA_NODE_METHOD_SET_PARAM

#define SPA_NODE_METHOD_SET_PARAM   4

◆ SPA_NODE_METHOD_SYNC

#define SPA_NODE_METHOD_SYNC   2

◆ SPA_NODE_PARAM_FLAG_FIXATE

#define SPA_NODE_PARAM_FLAG_FIXATE   (1 << 1)

Fixate the non-optional unset fields.

◆ SPA_NODE_PARAM_FLAG_NEAREST

#define SPA_NODE_PARAM_FLAG_NEAREST   (1 << 2)

Allow set fields to be rounded to the nearest allowed field value.

◆ SPA_NODE_PARAM_FLAG_TEST_ONLY

#define SPA_NODE_PARAM_FLAG_TEST_ONLY   (1 << 0)

flags that can be passed to set_param and port_set_param functions

Just check if the param is accepted

◆ spa_node_port_enum_params

#define spa_node_port_enum_params (   n,
  ... 
)    spa_node_method(n, port_enum_params, 0, __VA_ARGS__)

◆ spa_node_port_reuse_buffer

#define spa_node_port_reuse_buffer (   n,
  ... 
)    spa_node_method(n, port_reuse_buffer, 0, __VA_ARGS__)

◆ spa_node_port_set_io

#define spa_node_port_set_io (   n,
  ... 
)    spa_node_method(n, port_set_io, 0, __VA_ARGS__)

◆ spa_node_port_set_param

#define spa_node_port_set_param (   n,
  ... 
)    spa_node_method(n, port_set_param, 0, __VA_ARGS__)

◆ spa_node_port_use_buffers

#define spa_node_port_use_buffers (   n,
  ... 
)    spa_node_method(n, port_use_buffers, 0, __VA_ARGS__)

◆ spa_node_process

#define spa_node_process (   n)    spa_node_method(n, process, 0)

◆ spa_node_remove_port

#define spa_node_remove_port (   n,
  ... 
)    spa_node_method(n, remove_port, 0, __VA_ARGS__)

◆ spa_node_send_command

#define spa_node_send_command (   n,
  ... 
)    spa_node_method(n, send_command, 0, __VA_ARGS__)

◆ spa_node_set_callbacks

#define spa_node_set_callbacks (   n,
  ... 
)    spa_node_method(n, set_callbacks, 0, __VA_ARGS__)

◆ spa_node_set_io

#define spa_node_set_io (   n,
  ... 
)    spa_node_method(n, set_io, 0, __VA_ARGS__)

◆ spa_node_set_param

#define spa_node_set_param (   n,
  ... 
)    spa_node_method(n, set_param, 0, __VA_ARGS__)

◆ spa_node_sync

#define spa_node_sync (   n,
  ... 
)    spa_node_method(n, sync, 0, __VA_ARGS__)

◆ SPA_PORT_INFO_INIT

#define SPA_PORT_INFO_INIT ( )    (struct spa_port_info) { 0, }

◆ SPA_RESULT_TYPE_NODE_ERROR

#define SPA_RESULT_TYPE_NODE_ERROR   1

◆ SPA_RESULT_TYPE_NODE_PARAMS

#define SPA_RESULT_TYPE_NODE_PARAMS   2

◆ SPA_TYPE_INFO_IO

#define SPA_TYPE_INFO_IO   SPA_TYPE_INFO_ENUM_BASE "IO"

◆ SPA_TYPE_INFO_IO_BASE

#define SPA_TYPE_INFO_IO_BASE   SPA_TYPE_INFO_IO ":"

◆ SPA_TYPE_INFO_NODE_COMMAND_BASE

#define SPA_TYPE_INFO_NODE_COMMAND_BASE   SPA_TYPE_INFO_NodeCommand ":"

◆ SPA_TYPE_INFO_NODE_EVENT_BASE

#define SPA_TYPE_INFO_NODE_EVENT_BASE   SPA_TYPE_INFO_NodeEvent ":"

◆ SPA_TYPE_INFO_NodeCommand

#define SPA_TYPE_INFO_NodeCommand   SPA_TYPE_INFO_COMMAND_BASE "Node"

◆ SPA_TYPE_INFO_NodeEvent

#define SPA_TYPE_INFO_NodeEvent   SPA_TYPE_INFO_EVENT_BASE "Node"

◆ SPA_TYPE_INTERFACE_Node

#define SPA_TYPE_INTERFACE_Node   SPA_TYPE_INFO_INTERFACE_BASE "Node"

◆ SPA_VERSION_NODE

#define SPA_VERSION_NODE   0

Enumeration Type Documentation

◆ spa_io_position_state

Enumerator
SPA_IO_POSITION_STATE_STOPPED 
SPA_IO_POSITION_STATE_STARTING 
SPA_IO_POSITION_STATE_RUNNING 

◆ spa_io_type

IO areas.

IO information for a port on a node. This is allocated by the host and configured on a node or all ports for which IO is requested.

The plugin will communicate with the host through the IO areas. Different IO area types

Enumerator
SPA_IO_Invalid 
SPA_IO_Buffers 

area to exchange buffers, struct spa_io_buffers

SPA_IO_Range 

expected byte range, struct spa_io_range

SPA_IO_Clock 

area to update clock information, struct spa_io_clock

SPA_IO_Latency 

latency reporting, struct spa_io_latency

SPA_IO_Control 

area for control messages, struct spa_io_sequence

SPA_IO_Notify 

area for notify messages, struct spa_io_sequence

SPA_IO_Position 

position information in the graph, struct spa_io_position

SPA_IO_RateMatch 

rate matching between nodes, struct spa_io_rate_match

SPA_IO_Memory 

memory pointer, struct spa_io_memory

◆ spa_node_command

Enumerator
SPA_NODE_COMMAND_Suspend 

suspend a node, this removes all configured formats and closes any devices

SPA_NODE_COMMAND_Pause 

pause a node.

this makes it stop emitting scheduling events

SPA_NODE_COMMAND_Start 

start a node, this makes it start emitting scheduling events

SPA_NODE_COMMAND_Enable 
SPA_NODE_COMMAND_Disable 
SPA_NODE_COMMAND_Flush 
SPA_NODE_COMMAND_Drain 
SPA_NODE_COMMAND_Marker 
SPA_NODE_COMMAND_ParamBegin 

begin a set of parameter enumerations or configuration that require the device to remain opened, like query formats and then set a format

SPA_NODE_COMMAND_ParamEnd 

end a transaction

◆ spa_node_event

Enumerator
SPA_NODE_EVENT_Error 
SPA_NODE_EVENT_Buffering 
SPA_NODE_EVENT_RequestRefresh 

Function Documentation

◆ spa_node_enum_params_sync()

int spa_node_enum_params_sync ( struct spa_node node,
uint32_t  id,
uint32_t *  index,
const struct spa_pod filter,
struct spa_pod **  param,
struct spa_pod_builder builder 
)
inline

◆ spa_node_port_enum_params_sync()

int spa_node_port_enum_params_sync ( struct spa_node node,
enum spa_direction  direction,
uint32_t  port_id,
uint32_t  id,
uint32_t *  index,
const struct spa_pod filter,
struct spa_pod **  param,
struct spa_pod_builder builder 
)
inline

◆ spa_result_func_node_params()

Variable Documentation

◆ spa_type_io

const struct spa_type_info spa_type_io[]

◆ spa_type_node_command

const struct spa_type_info spa_type_node_command[]
Initial value:

◆ spa_type_node_command_id

◆ spa_type_node_event

const struct spa_type_info spa_type_node_event[]
Initial value:

◆ spa_type_node_event_id

const struct spa_type_info spa_type_node_event_id[]
SPA_TYPE_INFO_IO_BASE
#define SPA_TYPE_INFO_IO_BASE
Definition: node/type-info.h:44
spa_node_callbacks
Node callbacks.
Definition: build-12683127/doc/spa/node/node.h:207
SPA_IO_Position
@ SPA_IO_Position
position information in the graph, struct spa_io_position
Definition: io.h:59
SPA_NODE_COMMAND_Marker
@ SPA_NODE_COMMAND_Marker
Definition: node/command.h:51
SPA_NODE_COMMAND_Flush
@ SPA_NODE_COMMAND_Flush
Definition: node/command.h:49
SPA_TYPE_INFO_NODE_EVENT_BASE
#define SPA_TYPE_INFO_NODE_EVENT_BASE
Definition: node/type-info.h:61
SPA_TYPE_Id
@ SPA_TYPE_Id
Definition: build-12683127/doc/spa/utils/type.h:47
SPA_TYPE_Int
@ SPA_TYPE_Int
Definition: build-12683127/doc/spa/utils/type.h:48
SPA_NODE_COMMAND_Enable
@ SPA_NODE_COMMAND_Enable
Definition: node/command.h:47
spa_hook_list_call_simple
#define spa_hook_list_call_simple(l, type, method, vers,...)
Definition: hook.h:372
SPA_IO_Invalid
@ SPA_IO_Invalid
Definition: io.h:52
SPA_IO_RateMatch
@ SPA_IO_RateMatch
rate matching between nodes, struct spa_io_rate_match
Definition: io.h:60
SPA_IO_Control
@ SPA_IO_Control
area for control messages, struct spa_io_sequence
Definition: io.h:57
spa_type_node_event_id
const struct spa_type_info spa_type_node_event_id[]
Definition: node/type-info.h:63
SPA_IO_Buffers
@ SPA_IO_Buffers
area to exchange buffers, struct spa_io_buffers
Definition: io.h:53
spa_node_methods
Node methods.
Definition: build-12683127/doc/spa/node/node.h:281
SPA_NODE_EVENT_RequestRefresh
@ SPA_NODE_EVENT_RequestRefresh
Definition: node/event.h:43
spa_type_node_command_id
const struct spa_type_info spa_type_node_command_id[]
Definition: node/type-info.h:78
spa_node
Definition: build-12683127/doc/spa/node/node.h:53
SPA_NODE_COMMAND_Suspend
@ SPA_NODE_COMMAND_Suspend
suspend a node, this removes all configured formats and closes any devices
Definition: node/command.h:41
SPA_IO_Clock
@ SPA_IO_Clock
area to update clock information, struct spa_io_clock
Definition: io.h:55
SPA_NODE_COMMAND_Drain
@ SPA_NODE_COMMAND_Drain
Definition: node/command.h:50
SPA_NODE_COMMAND_Pause
@ SPA_NODE_COMMAND_Pause
pause a node.
Definition: node/command.h:43
SPA_IO_Range
@ SPA_IO_Range
expected byte range, struct spa_io_range
Definition: io.h:54
SPA_IO_Notify
@ SPA_IO_Notify
area for notify messages, struct spa_io_sequence
Definition: io.h:58
SPA_NODE_COMMAND_Start
@ SPA_NODE_COMMAND_Start
start a node, this makes it start emitting scheduling events
Definition: node/command.h:45
SPA_NODE_EVENT_Error
@ SPA_NODE_EVENT_Error
Definition: node/event.h:41
SPA_NODE_EVENT_Buffering
@ SPA_NODE_EVENT_Buffering
Definition: node/event.h:42
SPA_NODE_COMMAND_ParamBegin
@ SPA_NODE_COMMAND_ParamBegin
begin a set of parameter enumerations or configuration that require the device to remain opened,...
Definition: node/command.h:52
spa_node_events
events from the spa_node.
Definition: build-12683127/doc/spa/node/node.h:156
SPA_IO_Latency
@ SPA_IO_Latency
latency reporting, struct spa_io_latency
Definition: io.h:56
SPA_NODE_COMMAND_ParamEnd
@ SPA_NODE_COMMAND_ParamEnd
end a transaction
Definition: node/command.h:56
SPA_TYPE_INFO_NODE_COMMAND_BASE
#define SPA_TYPE_INFO_NODE_COMMAND_BASE
Definition: node/type-info.h:76
SPA_NODE_COMMAND_Disable
@ SPA_NODE_COMMAND_Disable
Definition: node/command.h:48
SPA_IO_Memory
@ SPA_IO_Memory
memory pointer, struct spa_io_memory
Definition: io.h:61