Go to the documentation of this file.
25 #ifndef PIPEWIRE_MODULE_H
26 #define PIPEWIRE_MODULE_H
37 #define PW_TYPE_INTERFACE_Module PW_TYPE_INFO_INTERFACE_BASE "Module"
39 #define PW_VERSION_MODULE 3
48 #define PW_MODULE_CHANGE_MASK_PROPS (1 << 0)
49 #define PW_MODULE_CHANGE_MASK_ALL ((1 << 1)-1)
65 #define PW_MODULE_EVENT_INFO 0
66 #define PW_MODULE_EVENT_NUM 1
70 #define PW_VERSION_MODULE_EVENTS 0
80 #define PW_MODULE_METHOD_ADD_LISTENER 0
81 #define PW_MODULE_METHOD_NUM 1
85 #define PW_VERSION_MODULE_METHODS 0
94 #define pw_module_method(o,method,version,...) \
96 int _res = -ENOTSUP; \
97 spa_interface_call_res((struct spa_interface*)o, \
98 struct pw_module_methods, _res, \
99 method, version, ##__VA_ARGS__); \
103 #define pw_module_add_listener(c,...) pw_module_method(c,add_listener,0,__VA_ARGS__)
struct pw_impl_factory * pw_context_create_factory(struct pw_context *context, const char *name, const char *type, uint32_t version, struct pw_properties *properties, size_t user_data_size)
Definition: impl-factory.c:39
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME)
struct pw_impl_client * pw_context_create_client(struct pw_impl_core *core, struct pw_protocol *protocol, struct pw_properties *properties, size_t user_data_size)
Create a new client.
Definition: impl-client.c:387
void spa_pod_builder_set_callbacks(struct spa_pod_builder *builder, const struct spa_pod_builder_callbacks *callbacks, void *data)
Definition: builder.h:80
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME)
#define SPA_MAX(a, b)
Definition: defs.h:134
void(* param_changed)(void *data, uint32_t id, const struct spa_pod *param)
when a parameter changed
Definition: stream.h:226
struct spa_hook stream_listener
Definition: module-example-sink.c:97
struct impl * impl
Definition: module-protocol-simple.c:107
struct pw_loop * pw_context_get_main_loop(struct pw_context *context)
get the context main loop
Definition: context.c:619
roc_context * context
Definition: module-roc-source.c:122
#define SPA_POD_Float(val)
Definition: vararg.h:71
uint32_t n_links
Definition: module-filter-chain.c:155
#define PW_DIRECTION_INPUT
Definition: port.h:57
int pw_impl_client_update_properties(struct pw_impl_client *client, const struct spa_dict *dict)
Update the client properties.
Definition: impl-client.c:639
#define DEFAULT_NICE_LEVEL
Definition: module-rtkit.c:56
PW_LOG_TOPIC(mod_topic, "mod." NAME)
struct spa_hook core_listener
Definition: module-roc-source.c:109
uint32_t mask
Definition: obj-x86_64-linux-gnu/doc/spa/support/loop.h:63
int int const char * pw_properties_get(const struct pw_properties *properties, const char *key)
Get a property.
Definition: properties.c:487
uint32_t latency_msec
Definition: module-pulse-tunnel.c:105
struct spa_audio_info_raw capture_info
Definition: module-filter-chain.c:240
int spa_pod_parser_push_struct(struct spa_pod_parser *parser, struct spa_pod_frame *frame)
Definition: parser.h:253
int pipewire__module_init(struct pw_impl_module *module, const char *args)
Definition: module-pulse-tunnel.c:731
struct pw_global * pw_impl_link_get_global(struct pw_impl_link *link)
Get the global of the link.
Definition: impl-link.c:1462
uint32_t maxsize
max size of data
Definition: buffer/buffer.h:87
Audio information description.
Definition: audio/raw.h:288
uint32_t flags
extra flags
Definition: properties.h:51
Definition: module-filter-chain.c:183
@ SPA_PROP_START_CUSTOM
Definition: props.h:119
Definition: pod/pod.h:175
uint32_t rate
Definition: audio/raw.h:291
uint8_t flush[MAX_BUFFER+sizeof(struct spa_pod_struct)]
Definition: module-profiler.c:92
void * pw_impl_client_get_user_data(struct pw_impl_client *client)
Get the client user data.
Definition: impl-client.c:559
#define PW_KEY_REMOTE_NAME
The name of the remote to connect to, default pipewire-0, overwritten by env(PIPEWIRE_REMOTE)
Definition: src/pipewire/keys.h:101
#define MAX_CONTROLS
Definition: module-filter-chain.c:112
pid_t pid
Definition: module-rtkit.c:79
Definition: module-roc-sink.c:97
struct port control_port[MAX_PORTS]
Definition: module-filter-chain.c:173
@ SPA_PROP_INFO_id
associated id of the property
Definition: props.h:42
#define PW_KEY_SEC_LABEL
client security label, set by protocol
Definition: src/pipewire/keys.h:58
struct spa_list output_link
Definition: module-filter-chain.c:187
spa_direction
Definition: defs.h:78
#define ROC_DEFAULT_IP
Definition: module-roc-sink.c:93
struct pw_core * core
Definition: protocol.h:57
#define MODULE_USAGE
Definition: module-rt.c:61
@ SPA_AUDIO_FORMAT_S16_LE
Definition: audio/raw.h:53
data for registering export functions
Definition: context.h:147
#define FACTORY_USAGE
Definition: module-link-factory.c:45
struct server * server
Definition: module-protocol-simple.c:108
uint32_t pw_impl_port_get_id(struct pw_impl_port *port)
Get the port id.
Definition: impl-port.c:666
#define RTKIT_SERVICE_NAME
Definition: module-rtkit.c:136
const struct fc_descriptor * desc
Definition: module-filter-chain.c:200
int pw_context_register_export_type(struct pw_context *context, struct pw_export_type *type)
register a type that can be exported on a context_proxy.
Definition: context.c:1431
struct pw_loop * loop
Definition: module-protocol-native.c:137
struct spa_audio_info_raw playback_info
Definition: module-filter-chain.c:245
uint32_t new_id
Definition: module-link-factory.c:82
#define PW_VERSION_NODE
Definition: src/pipewire/node.h:52
void pw_resource_remove(struct pw_resource *resource)
Remove a resource, like pw_resource_destroy but without sending a remove_id message to the client.
Definition: resource.c:292
struct descriptor * desc
Definition: module-filter-chain.c:166
#define pw_logt_debug(t,...)
Definition: src/pipewire/log.h:161
uint32_t n_server_methods
number of server methods
Definition: protocol.h:96
struct spa_list link
Definition: module-rtkit.c:77
#define MIN_FLUSH
Definition: module-profiler.c:54
char * config
Definition: module-filter-chain.c:169
struct pw_work_queue * work
Definition: module-roc-source.c:103
int pipewire__module_init(struct pw_impl_module *module, const char *args)
Definition: module-protocol-simple.c:810
#define SERVICE_TYPE_SOURCE
Definition: module-zeroconf-discover.c:67
struct pw_rtkit_bus * pw_rtkit_bus_get_system(void)
Definition: module-rtkit.c:149
const char * type
Definition: context.h:149
#define PW_KEY_AUDIO_FORMAT
an audio format.
Definition: src/pipewire/keys.h:308
int endpoint_factory_init(struct pw_impl_module *module)
void pw_impl_factory_set_implementation(struct pw_impl_factory *factory, const struct pw_impl_factory_implementation *implementation, void *data)
Definition: impl-factory.c:254
uint32_t n_control
Definition: module-filter-chain.c:138
int pw_impl_client_register(struct pw_impl_client *client, struct pw_properties *properties)
Finish configuration and register a client.
Definition: impl-client.c:474
@ SPA_CHOICE_Range
range: default, min, max
Definition: pod/pod.h:142
struct pw_impl_link * pw_context_create_link(struct pw_context *context, struct pw_impl_port *output, struct pw_impl_port *input, struct spa_pod *format_filter, struct pw_properties *properties, size_t user_data_size)
Make a new link between two ports.
Definition: impl-link.c:1135
int spa_pod_parser_get_string(struct spa_pod_parser *parser, const char **value)
Definition: parser.h:190
unsigned int disconnecting
Definition: module-protocol-native.c:119
#define SPA_POD_Int(val)
Definition: vararg.h:59
struct pw_work_queue * work
Definition: module-link-factory.c:66
struct pw_export_type export_spanode
Definition: module-client-node.c:68
const struct spa_support * pw_context_get_support(struct pw_context *context, uint32_t *n_support)
Get the context support objects.
Definition: context.c:612
struct pw_properties * capture_props
Definition: module-roc-sink.c:110
#define spa_zero(x)
Definition: defs.h:310
#define pw_loop_update_timer(l,...)
Definition: src/pipewire/loop.h:78
uint32_t n_hndl
Definition: module-filter-chain.c:216
bool pw_global_is_type(struct pw_global *global, const char *type)
Check a global type.
Definition: global.c:192
pthread_mutex_t lock
Definition: module-rtkit.c:91
PW_LOG_TOPIC(mod_topic, "mod." NAME)
@ SPA_PROP_params
simple control params (Struct( (String : key, Pod : value)*))
Definition: props.h:113
void pw_impl_link_destroy(struct pw_impl_link *link)
Destroy a link.
Definition: impl-link.c:1380
void * play_buffer[SPA_AUDIO_MAX_CHANNELS]
Definition: module-echo-cancel.c:166
#define SPA_TYPE_INTERFACE_Device
Definition: obj-x86_64-linux-gnu/doc/spa/monitor/device.h:50
#define UNIX_PATH_MAX
Definition: module-protocol-native.c:77
@ SPA_AUDIO_FORMAT_S16_BE
Definition: audio/raw.h:54
struct pw_impl_module * module
Definition: module-roc-sink.c:98
unsigned int connected
Definition: module-protocol-native.c:118
roc_address local_repair_addr
Definition: module-roc-source.c:121
int spa_json_container_len(struct spa_json *iter, const char *value, int len)
Definition: json.h:200
int pw_global_register(struct pw_global *global)
Register a global object to the context registry.
Definition: global.c:126
#define SPA_POD_OBJECT_FOREACH(obj, iter)
Definition: iter.h:123
struct pw_global * pw_impl_factory_get_global(struct pw_impl_factory *factory)
Get the global of this factory.
Definition: impl-factory.c:239
int spa_json_get_float(struct spa_json *iter, float *res)
Definition: json.h:247
int spa_pod_builder_push_choice(struct spa_pod_builder *builder, struct spa_pod_frame *frame, uint32_t type, uint32_t flags)
Definition: builder.h:399
void pw_context_add_listener(struct pw_context *context, struct spa_hook *listener, const struct pw_context_events *events, void *data)
Add a new event listener to a context.
Definition: context.c:603
PW_LOG_TOPIC(mod_topic, "mod." NAME)
#define PW_KEY_PORT_NAME
port name
Definition: src/pipewire/keys.h:184
struct spa_list link
link in struct endpoint_link link_list or struct impl link_list
Definition: module-filter-chain.c:184
unsigned int visited
Definition: module-filter-chain.c:180
uint32_t pw_impl_node_get_free_port_id(struct pw_impl_node *node, enum pw_direction direction)
Get a free unused port_id from the node.
Definition: impl-node.c:1984
const struct pw_client_info * pw_impl_client_get_info(struct pw_impl_client *client)
Get the client information.
Definition: impl-client.c:623
uint32_t n_datas
number of data members
Definition: buffer/buffer.h:95
struct pw_context * pw_impl_client_get_context(struct pw_impl_client *client)
Get the context used to create this client.
Definition: impl-client.c:523
#define NAME
Definition: module-adapter.c:43
struct pw_impl_node * node
Definition: module-link-factory.c:215
#define DEFAULT_POLICY
Definition: module-rt.c:54
int spa_pod_builder_float(struct spa_pod_builder *builder, float val)
Definition: builder.h:265
int pw_impl_node_initialized(struct pw_impl_node *node)
Definition: impl-node.c:733
struct spa_list plugin_list
Definition: module-filter-chain.c:235
int pipewire__module_init(struct pw_impl_module *module, const char *args)
Definition: module-rt.c:250
Definition: module-roc-source.c:101
unsigned int paused
Definition: module-protocol-native.c:121
int pw_rtkit_make_realtime(struct pw_rtkit_bus *connection, pid_t thread, int priority)
Definition: module-rtkit.c:327
struct pw_impl_port * pw_impl_node_find_port(struct pw_impl_node *node, enum pw_direction direction, uint32_t port_id)
Find the port with direction and port_id or NULL when not found.
Definition: impl-node.c:1949
@ SPA_AUDIO_FORMAT_U8
Definition: audio/raw.h:52
Definition: latency-utils.h:37
#define DEFAULT_FORMAT
Definition: module-example-sink.c:59
pa_threaded_mainloop * pa_mainloop
Definition: module-pulse-tunnel.c:118
#define SPA_DICT_ITEM_INIT(key, value)
Definition: utils/dict.h:46
struct impl * impl
Definition: module-protocol-simple.c:131
int spa_json_enter_object(struct spa_json *iter, struct spa_json *sub)
Definition: json.h:214
uint32_t type
Definition: obj-x86_64-linux-gnu/doc/spa/utils/type.h:138
#define PW_KEY_MODULE_ID
module properties
Definition: src/pipewire/keys.h:249
int ref
Definition: module-filter-chain.c:130
char name[256]
Definition: module-filter-chain.c:168
int ref
Definition: pipewire.c:68
const struct spa_type_info spa_type_audio_channel[]
Definition: param/audio/type-info.h:162
#define SPA_POD_Double(val)
Definition: vararg.h:76
Definition: impl-core.c:75
#define pw_proxy_notify(p, type, event, version,...)
Definition: proxy.h:192
Definition: protocol.h:53
#define PW_LOG_TOPIC_INIT(var)
Definition: src/pipewire/log.h:136
#define MAX_BUFFER
Definition: module-profiler.c:53
struct pw_impl_module * module
Definition: module-adapter.c:64
int pipewire__module_init(struct pw_impl_module *module, const char *args)
Definition: module-rtkit.c:675
void(* error)(void *object, uint32_t id, int seq, int res, const char *message)
Fatal error event.
Definition: core.h:164
#define LOCK_SUFFIX
Definition: module-protocol-native.c:93
unsigned int cleanup
Definition: module-protocol-simple.c:126
void spa_ringbuffer_read_data(struct spa_ringbuffer *rbuf, const void *buffer, uint32_t size, uint32_t offset, void *data, uint32_t len)
Read len bytes from rbuf starting offset.
Definition: ringbuffer.h:103
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME)
#define PW_KEY_CLIENT_API
the client api used to access PipeWire
Definition: src/pipewire/keys.h:133
int spa_latency_parse(const struct spa_pod *latency, struct spa_latency_info *info)
Definition: latency-utils.h:83
struct spa_list link
link in impl node_list
Definition: module-filter-chain.c:163
#define DEFAULT_CHANNELS
Definition: module-protocol-simple.c:65
#define TMP_BUFFER
Definition: module-profiler.c:52
struct pw_properties * stream_props
Definition: module-example-sink.c:95
#define DEFAULT_CHANNELS
Definition: module-example-sink.c:61
pw_stream_state
Definition: stream.h:167
const char * name
Definition: module-link-factory.c:303
@ PW_STREAM_FLAG_RT_PROCESS
call process from the realtime thread.
Definition: stream.h:256
#define PW_TYPE_INTERFACE_Link
Definition: link.h:52
PW_LOG_TOPIC(mod_topic, "mod." NAME)
@ SPA_PARAM_Latency
latency reporting, a SPA_TYPE_OBJECT_ParamLatency
Definition: param.h:59
user data to add to an object
Definition: filter.c:75
struct pw_impl_module * pw_context_load_module(struct pw_context *context, const char *name, const char *args, struct pw_properties *properties)
Load a module.
Definition: impl-module.c:160
void void pw_resource_errorf_id(struct pw_resource *resource, uint32_t id, int res, const char *error,...) 1(4
struct pw_global * pw_global_new(struct pw_context *context, const char *type, uint32_t version, struct pw_properties *properties, pw_global_bind_func_t func, void *object)
Create a new global object.
Definition: global.c:67
uint8_t data[MAX_BUFFER]
Definition: module-profiler.c:90
int pw_global_add_resource(struct pw_global *global, struct pw_resource *resource)
Add a resource to a global.
Definition: global.c:231
#define SPA_DICT_INIT_ARRAY(items)
Definition: utils/dict.h:56
AvahiIfIndex interface
Definition: module-zeroconf-discover.c:90
#define NAME
Definition: module-client-device.c:41
roc_receiver * receiver
Definition: module-roc-source.c:123
bool spa_streq(const char *s1, const char *s2)
Definition: string.h:50
Definition: pod/pod.h:199
void pw_protocol_destroy(struct pw_protocol *protocol)
Definition: protocol.c:104
#define PW_KEY_OBJECT_PATH
object properties
Definition: src/pipewire/keys.h:65
uint32_t id
Definition: module-link-factory.c:302
struct spa_hook resource_listener
Definition: impl-core.c:77
#define spa_list_for_each(pos, head, member)
Definition: list.h:111
pthread_cond_t cond
Definition: module-rtkit.c:92
#define NAME
Definition: module-portal.c:82
const char * args
arguments passed to the module
Definition: module.h:47
struct spa_hook resource_listener
Definition: module-adapter.c:76
char type[64]
Definition: module-filter-chain.c:121
Module events added with pw_impl_module_add_listener.
Definition: impl-module.h:63
int remote_source_port
Definition: module-roc-sink.c:123
uint32_t pw_resource_get_permissions(struct pw_resource *resource)
Get the permissions of this resource.
Definition: resource.c:140
int client_session_factory_init(struct pw_impl_module *module)
struct pw_impl_port * pw_context_create_port(struct pw_context *context, enum pw_direction direction, uint32_t port_id, const struct spa_port_info *info, size_t user_data_size)
Create a new port.
Definition: impl-port.c:446
void * pw_impl_factory_get_user_data(struct pw_impl_factory *factory)
Definition: impl-factory.c:227
int spa_pod_builder_add(struct spa_pod_builder *builder,...)
Definition: builder.h:638
link events added with pw_impl_link_add_listener
Definition: impl-link.h:47
struct pw_stream * playback
Definition: module-echo-cancel.c:161
int rt_prio
Definition: module-rt.c:83
void(* destroy)(void *data)
The proxy is destroyed.
Definition: proxy.h:116
bool spa_atou32(const char *str, uint32_t *val, int base)
Convert str to an uint32_t with the given base and store the result in val.
Definition: string.h:137
rlim_t rt_time_soft
Definition: module-rt.c:84
Definition: src/pipewire/loop.h:47
int32_t stride
stride of valid data
Definition: buffer/buffer.h:63
struct spa_pod * spa_format_audio_raw_build(struct spa_pod_builder *builder, uint32_t id, struct spa_audio_info_raw *info)
Definition: audio/format-utils.h:103
#define SPA_EXPORT
Definition: defs.h:215
#define NAME
Definition: module-roc-sink.c:88
struct port * output
Definition: module-filter-chain.c:189
@ SPA_DIRECTION_INPUT
Definition: defs.h:79
Definition: module-rtkit.c:75
Definition: module-link-factory.c:211
Global events, use pw_global_add_listener.
Definition: global.h:68
struct spa_hook conn_listener
Definition: module-protocol-native.c:114
int seq
Definition: policy-ep.c:68
DBusPendingCall * portal_pid_pending
Definition: module-portal.c:97
int pw_impl_link_register(struct pw_impl_link *link, struct pw_properties *properties)
Finish link configuration and register.
Definition: impl-link.c:1316
#define NAME
Definition: module-example-source.c:54
#define pw_log_trace(...)
Definition: src/pipewire/log.h:156
@ SPA_PROFILER_clock
clock information (Struct( Int : clock flags, Int : clock id, String: clock name, Long : clock nsec,...
Definition: profiler.h:51
const struct pw_port_info * pw_impl_port_get_info(struct pw_impl_port *port)
Get the port info.
Definition: impl-port.c:707
float * audio_data[MAX_HNDL]
Definition: module-filter-chain.c:159
#define LOCK_SUFFIXLEN
Definition: module-protocol-native.c:94
#define SPA_ROUND_UP_N(num, align)
Definition: defs.h:230
#define spa_list_last(head, type, member)
Definition: list.h:78
struct pw_stream * playback
Definition: module-roc-source.c:112
uint32_t flags
clock flags
Definition: io.h:134
#define SPA_FLAG_UPDATE(field, flag, val)
Definition: defs.h:76
struct spa_io_rate_match * rec_rate_match
Definition: module-echo-cancel.c:159
unsigned int capture_ready
Definition: module-echo-cancel.c:179
int fd
Definition: obj-x86_64-linux-gnu/doc/spa/support/loop.h:62
Definition: alsa-monitor.c:149
Definition: module-filter-chain.c:162
#define NAME
Definition: module-rtkit.c:51
struct pw_impl_client * client
Definition: module-protocol-native.c:144
int pipewire__module_init(struct pw_impl_module *module, const char *args)
Definition: module-echo-cancel.c:818
void * arg
Definition: module-rtkit.c:81
#define PW_VERSION_STREAM_EVENTS
Definition: stream.h:212
#define DEFAULT_NICE_LEVEL
Definition: module-rt.c:56
const char * pw_get_user_name(void)
Get the user name.
Definition: pipewire.c:775
struct spa_hook playback_listener
Definition: module-echo-cancel.c:162
unsigned long input[MAX_PORTS]
Definition: module-filter-chain.c:140
struct pw_impl_link * link
Definition: module-link-factory.c:72
int pipewire__module_init(struct pw_impl_module *module, const char *args)
Definition: module-roc-sink.c:383
int pipewire__module_init(struct pw_impl_module *module, const char *args)
Definition: module-session-manager.c:53
#define PW_KEY_DEVICE_PRODUCT_NAME
product name if applicable
Definition: src/pipewire/keys.h:227
struct spa_list link
Definition: module-zeroconf-discover.c:100
AvahiServiceBrowser * source_browser
Definition: module-zeroconf-discover.c:82
The position information adds extra meaning to the raw clock times.
Definition: io.h:271
uint32_t id
id of the global
Definition: factory.h:47
unsigned int listening
Definition: module-profiler.c:86
const char * domain
Definition: module-zeroconf-discover.c:94
Definition: obj-x86_64-linux-gnu/doc/spa/support/thread.h:52
char lock_addr[UNIX_PATH_MAX+LOCK_SUFFIXLEN]
Definition: module-protocol-native.c:135
struct pw_impl_module * module
Definition: module-protocol-native.c:100
#define NAME
Definition: module-access.c:125
uint32_t n_output
Definition: module-filter-chain.c:213
void pw_proxy_destroy(struct pw_proxy *proxy)
destroy a proxy
Definition: proxy.c:231
#define strdupa(s)
Definition: src/pipewire/utils.h:79
#define DEFAULT_CHANNELS
Definition: module-example-source.c:61
struct spa_list descriptor_list
Definition: module-filter-chain.c:125
struct pw_properties * props
Definition: module-example-sink.c:84
@ SPA_PROFILER_followerBlock
generic follower info block (Struct( Int : id, String : name, Long : prev_signal, Long : signal,...
Definition: profiler.h:75
struct pw_global * pw_impl_core_get_global(struct pw_impl_core *core)
Get the global of this core.
Definition: impl-core.c:667
struct pw_protocol * pw_protocol_native_ext_client_device_init(struct pw_context *context)
uint32_t id
Definition: access-flatpak.c:73
struct pw_protocol * protocol
Definition: module-protocol-native.c:102
#define PW_KEY_MEDIA_NAME
media name.
Definition: src/pipewire/keys.h:286
Proxy events, use pw_proxy_add_listener.
Definition: proxy.h:111
#define SERVER_TYPE_INET
Definition: module-protocol-simple.c:135
uint32_t version
Definition: module.h:86
int pw_rtkit_get_max_realtime_priority(struct pw_rtkit_bus *connection)
Definition: module-rtkit.c:298
void spa_hook_list_append(struct spa_hook_list *list, struct spa_hook *hook, const void *funcs, void *data)
Append a hook.
Definition: hook.h:334
#define PW_KEY_CORE_DAEMON
If the core is listening for connections.
Definition: src/pipewire/keys.h:86
struct pw_stream * playback
Definition: module-protocol-simple.c:119
struct spa_hook core_listener
Definition: module-echo-cancel.c:147
#define PW_KEY_NODE_LINK_GROUP
the node is internally linked to nodes with the same link-group
Definition: src/pipewire/keys.h:179
roc_address remote_repair_addr
Definition: module-roc-sink.c:117
int spa_pod_builder_push_object(struct spa_pod_builder *builder, struct spa_pod_frame *frame, uint32_t type, uint32_t id)
Definition: builder.h:426
struct pw_work_queue * pw_context_get_work_queue(struct pw_context *context)
Get the work queue from the context: Since 0.3.26.
Definition: context.c:625
const struct pw_properties * pw_global_get_properties(struct pw_global *global)
Get the global properties.
Definition: global.c:204
int pipewire__module_init(struct pw_impl_module *module, const char *args)
Definition: module-client-node.c:155
struct spa_pod pod
Definition: pod/pod.h:162
#define PW_KEY_AUDIO_CHANNELS
number of audio channels
Definition: src/pipewire/keys.h:307
@ SPA_IO_RateMatch
rate matching between nodes, struct spa_io_rate_match
Definition: io.h:60
#define SERVER_TYPE_UNIX
Definition: module-protocol-simple.c:134
uint32_t id
id of the global
Definition: module.h:44
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME)
#define SPA_PTROFF(ptr_, offset_, type_)
Return the address (buffer + offset) as pointer of type.
Definition: defs.h:164
unsigned int do_disconnect
Definition: module-roc-sink.c:112
struct spa_node * node
Definition: buffers.c:45
struct spa_hook core_proxy_listener
Definition: module-roc-source.c:110
pid_t portal_pid
Definition: module-portal.c:98
unsigned int sink_ready
Definition: module-echo-cancel.c:180
struct pw_impl_module * module
Definition: module-zeroconf-discover.c:102
Definition: module-filter-chain.c:204
struct spa_hook playback_listener
Definition: module-roc-source.c:113
thread utils
Definition: obj-x86_64-linux-gnu/doc/spa/support/thread.h:55
The events that a client can emit.
Definition: impl-client.h:88
#define SPA_DICT_INIT(items, n_items)
Definition: utils/dict.h:55
struct spa_hook core_proxy_listener
Definition: module-protocol-simple.c:111
int sess_latency_msec
Definition: module-roc-source.c:129
bool spa_strstartswith(const char *s, const char *prefix)
Definition: string.h:71
struct pw_proxy * pw_core_spa_device_export(struct pw_core *core, const char *type, const struct spa_dict *props, void *object, size_t user_data_size)
enum spa_audio_format format
Definition: audio/raw.h:289
#define DEFAULT_SERVER
Definition: module-protocol-simple.c:61
int pipewire__module_init(struct pw_impl_module *module, const char *args)
Definition: module-protocol-native.c:1299
#define NAME
Definition: module-protocol-native.c:62
struct spa_list protocol_link
Definition: module-protocol-native.c:147
roc_address local_addr
Definition: module-roc-sink.c:115
Definition: permission.h:64
uint32_t id
Definition: module-echo-cancel.c:143
@ PW_STREAM_FLAG_AUTOCONNECT
try to automatically connect this stream
Definition: stream.h:249
#define PW_TYPE_INTERFACE_Core
Definition: core.h:54
#define PW_KEY_PROTOCOL
protocol used for connection
Definition: src/pipewire/keys.h:47
#define ROC_DEFAULT_REPAIR_PORT
Definition: module-roc-sink.c:95
unsigned int linger
Definition: module-adapter.c:78
#define MODE_CAPTURE
Definition: module-pulse-tunnel.c:92
uint32_t version
Definition: impl-node.h:53
roc_address local_source_addr
Definition: module-roc-source.c:120
@ SPA_TYPE_OBJECT_Profiler
Definition: obj-x86_64-linux-gnu/doc/spa/utils/type.h:97
A ringbuffer type.
Definition: ringbuffer.h:46
void pw_impl_module_add_listener(struct pw_impl_module *module, struct spa_hook *listener, const struct pw_impl_module_events *events, void *data)
Add an event listener to a module.
Definition: impl-module.c:384
#define SPA_POD_BUILDER_INIT(buffer, size)
Definition: builder.h:71
struct spa_hook core_listener
Definition: module-roc-sink.c:105
#define PW_VERSION_LINK
Definition: link.h:54
void * pw_global_get_object(struct pw_global *global)
Get the object associated with the global.
Definition: global.c:219
#define MODULE_USAGE
Definition: module-example-sink.c:64
int pipewire__module_init(struct pw_impl_module *module, const char *args)
Definition: module-access.c:367
long long pw_rtkit_get_rttime_usec_max(struct pw_rtkit_bus *connection)
Definition: module-rtkit.c:318
#define SPA_INTERFACE_INIT(_type, _version, _funcs, _data)
Initialize a spa_interface.
Definition: hook.h:168
struct spa_audio_info_raw info
Definition: module-echo-cancel.c:149
@ SPA_PARAM_Props
properties as SPA_TYPE_OBJECT_Props
Definition: param.h:46
void pw_rtkit_bus_free(struct pw_rtkit_bus *system_bus)
Definition: module-rtkit.c:181
#define SPA_POD_INIT_Struct(size)
Definition: builder.h:411
pa_stream * pa_stream
Definition: module-pulse-tunnel.c:120
void * data
Definition: builder.h:64
void * hndl
Definition: module-filter-chain.c:195
int endpoint_link_factory_init(struct pw_impl_module *module)
Definition: obj-x86_64-linux-gnu/doc/spa/support/loop.h:58
PW_LOG_TOPIC(mod_topic, "mod." NAME)
Definition: obj-x86_64-linux-gnu/doc/spa/support/loop.h:44
uint32_t channels
Definition: audio/raw.h:292
const char * pw_stream_state_as_string(enum pw_stream_state state)
Convert a stream state to a readable string.
Definition: stream.c:1401
struct spa_dict dict
dictionary of key/values
Definition: properties.h:50
#define pw_loop_destroy_source(l,...)
Definition: src/pipewire/loop.h:80
struct factory_data * data
Definition: module-link-factory.c:70
roc_context * context
Definition: module-roc-sink.c:118
unsigned int flushing
Definition: module-profiler.c:85
struct pw_impl_port * port
Definition: module-link-factory.c:216
Definition: utils/dict.h:41
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME)
AvahiPoll * avahi_poll
Definition: module-zeroconf-discover.c:79
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME)
enum spa_direction direction
Definition: module-link-factory.c:214
double rate_diff
rate difference between clock and monotonic time
Definition: io.h:145
struct pw_context * context
Definition: module-adapter.c:63
Definition: module-link-factory.c:69
#define SPA_CONTAINER_OF(p, t, m)
Definition: defs.h:175
int pipewire__module_init(struct pw_impl_module *module, const char *args)
Definition: module-filter-chain.c:1642
#define DEFAULT_POSITION
Definition: module-example-sink.c:62
const struct pw_protocol_marshal * pw_proxy_get_marshal(struct pw_proxy *proxy)
Get the marshal functions for the proxy.
Definition: proxy.c:358
struct pw_core * pw_context_connect(struct pw_context *context, struct pw_properties *properties, size_t user_data_size)
Connect to a PipeWire instance.
Definition: core.c:402
int(* connect_fd)(struct pw_protocol_client *client, int fd, bool close)
Definition: protocol.h:63
@ SPA_PARAM_Format
configured format as SPA_TYPE_OBJECT_Format
Definition: param.h:48
struct pw_global * global
Definition: module-profiler.c:79
struct plugin * plugin
Definition: module-filter-chain.c:131
@ PW_STREAM_STATE_PAUSED
paused
Definition: stream.h:171
uint32_t n_control
Definition: module-filter-chain.c:219
#define PW_KEY_SEC_UID
Client uid, set by protocol.
Definition: src/pipewire/keys.h:56
struct pw_properties * playback_props
Definition: module-filter-chain.c:242
struct graph_port input[MAX_PORTS]
Definition: module-filter-chain.c:211
#define NAME
Definition: module-link-factory.c:40
void pw_impl_module_destroy(struct pw_impl_module *module)
Destroy a module.
Definition: impl-module.c:306
#define spa_list_consume(pos, head, member)
Definition: list.h:96
Definition: module-filter-chain.c:193
#define SPA_TYPE_INTERFACE_Node
Definition: obj-x86_64-linux-gnu/doc/spa/node/node.h:50
struct pw_impl_core * core
Definition: protocol.h:81
struct fc_plugin * plugin
Definition: module-filter-chain.c:124
#define spa_dbus_connection_destroy(c)
Definition: dbus.h:113
int spa_json_is_container(const char *val, int len)
Definition: json.h:195
struct spa_interface iface
Definition: obj-x86_64-linux-gnu/doc/spa/support/thread.h:52
#define DEFAULT_RT_TIME_SOFT
Definition: module-rtkit.c:58
void * spa_pod_builder_pop(struct spa_pod_builder *builder, struct spa_pod_frame *frame)
Definition: builder.h:175
const struct fc_descriptor * desc
Definition: module-filter-chain.c:134
struct sm_client * obj
Definition: access-flatpak.c:71
int pw_context_for_each_global(struct pw_context *context, int(*callback)(void *data, struct pw_global *global), void *data)
Iterate the globals of the context.
Definition: context.c:671
struct spa_list tunnel_list
Definition: module-zeroconf-discover.c:84
struct pw_port * port
Definition: filter.c:96
int64_t count
Definition: module-profiler.c:81
#define PW_KEY_CORE_NAME
The name of the core.
Definition: src/pipewire/keys.h:82
void pw_module_info_free(struct pw_module_info *info)
Free a pw_module_info.
Definition: introspect.c:399
const struct pw_properties * pw_impl_port_get_properties(struct pw_impl_port *port)
Get the port properties.
Definition: impl-port.c:672
struct spa_hook core_proxy_listener
Definition: module-echo-cancel.c:146
#define NAME
Definition: module-protocol-pulse.c:44
const char * name
Definition: obj-x86_64-linux-gnu/doc/spa/utils/type.h:140
#define PW_KEY_LINK_INPUT_NODE
input node id of a link
Definition: src/pipewire/keys.h:198
const struct pw_protocol_marshal * pw_resource_get_marshal(struct pw_resource *resource)
Get the marshal functions for the resource.
Definition: resource.c:190
void(* disconnect)(struct pw_protocol_client *client)
Definition: protocol.h:65
#define PW_KEY_NODE_NICK
short node name
Definition: src/pipewire/keys.h:139
#define SPA_VERSION_POD_BUILDER_CALLBACKS
Definition: builder.h:57
struct pw_module_info * pw_module_info_update(struct pw_module_info *info, const struct pw_module_info *update)
Update and existing pw_module_info with update with reset.
Definition: introspect.c:392
#define PW_KEY_NODE_GROUP
the group id this node is part of.
Definition: src/pipewire/keys.h:146
struct pw_resource * resource
Definition: module-adapter.c:74
Definition: module-link-factory.c:301
int ref
Definition: module-protocol-native.c:116
struct pw_global * pw_impl_node_get_global(struct pw_impl_node *node)
Get the global of this node.
Definition: impl-node.c:1268
#define RINGBUFFER_SIZE
Definition: module-pulse-tunnel.c:83
rate matching
Definition: io.h:287
void pw_global_add_listener(struct pw_global *global, struct spa_hook *listener, const struct pw_global_events *events, void *data)
Add an event listener on the global.
Definition: global.c:256
uint32_t offset
offset of valid data.
Definition: buffer/buffer.h:58
#define MODULE_USAGE
Definition: module-rtkit.c:61
int spa_pod_builder_bool(struct spa_pod_builder *builder, bool val)
Definition: builder.h:233
Definition: module-zeroconf-discover.c:89
uint32_t id
unique clock id, set by application
Definition: io.h:135
context events emitted by the context object added with pw_context_add_listener
Definition: context.h:72
struct spa_hook global_listener
Definition: module-link-factory.c:79
int pipewire__module_init(struct pw_impl_module *module, const char *args)
Definition: module-roc-source.c:428
struct spa_list client_list
list of clients of this protocol
Definition: protocol.h:83
void pw_protocol_native_init(struct pw_protocol *protocol)
#define PW_DIRECTION_OUTPUT
Definition: port.h:58
uint64_t size
This field is set by the user and the sum of all queued buffer is returned in the time info.
Definition: stream.h:178
#define SPA_KEY_AUDIO_POSITION
channel positions as comma separated list of channels ex.
Definition: audio/raw.h:304
struct pw_resource * factory_resource
Definition: module-link-factory.c:81
float default_control[MAX_PORTS]
Definition: module-filter-chain.c:144
@ PW_LINK_STATE_ERROR
the link is in error
Definition: link.h:59
@ SPA_PROP_INFO_name
name of the property
Definition: props.h:43
struct port * input
Definition: module-filter-chain.c:190
@ SPA_AUDIO_FORMAT_F32_LE
Definition: audio/raw.h:77
struct pw_protocol * protocol
the owner protocol
Definition: protocol.h:55
int32_t spa_ringbuffer_get_read_index(struct spa_ringbuffer *rbuf, uint32_t *index)
Get the read index and available bytes for reading.
Definition: ringbuffer.h:85
struct pw_buffer * pw_stream_dequeue_buffer(struct pw_stream *stream)
Get a buffer that can be filled for playback streams or consumed for capture streams.
Definition: stream.c:2020
int32_t spa_ringbuffer_get_write_index(struct spa_ringbuffer *rbuf, uint32_t *index)
Get the write index and the number of bytes inside the ringbuffer.
Definition: ringbuffer.h:135
struct pw_export_type export_node
Definition: module-client-node.c:67
#define pw_loop_add_event(l,...)
Definition: src/pipewire/loop.h:75
uint32_t n_output
Definition: module-filter-chain.c:137
void spa_list_remove(struct spa_list *elem)
Definition: list.h:69
#define DEFAULT_RT_TIME_HARD
Definition: module-rtkit.c:59
struct pw_properties * sink_props
Definition: module-echo-cancel.c:163
#define PW_KEY_MODULE_AUTHOR
the author's name
Definition: src/pipewire/keys.h:251
#define TUNNEL_INFO(...)
Definition: module-zeroconf-discover.c:97
struct pw_impl_module * module
Definition: module-echo-cancel.c:139
bool playback
Definition: module-protocol-simple.c:99
int pw_properties_serialize_dict(FILE *f, const struct spa_dict *dict, uint32_t flags)
Definition: properties.c:567
void spa_ringbuffer_write_data(struct spa_ringbuffer *rbuf, void *buffer, uint32_t size, uint32_t offset, const void *data, uint32_t len)
Write len bytes to buffer starting offset.
Definition: ringbuffer.h:153
int pw_global_bind(struct pw_global *global, struct pw_impl_client *client, uint32_t permissions, uint32_t version, uint32_t id)
Let a client bind to a global.
Definition: global.c:278
#define MAX_SAMPLES
Definition: module-filter-chain.c:113
#define ROC_DEFAULT_SOURCE_PORT
Definition: module-roc-source.c:97
const char * name
Definition: module-zeroconf-discover.c:92
#define SPA_AUDIO_MAX_CHANNELS
Definition: audio/raw.h:43
#define PW_KEY_LINK_INPUT_PORT
input port id of a link
Definition: src/pipewire/keys.h:199
Definition: module-adapter.c:58
#define PW_KEY_MODULE_DESCRIPTION
a human readable one-line description of the module's purpose.
Definition: src/pipewire/keys.h:252
struct spa_hook sink_listener
Definition: module-echo-cancel.c:165
struct pw_global * pw_context_find_global(struct pw_context *context, uint32_t id)
Find a context global by id.
Definition: context.c:688
@ SPA_AUDIO_FORMAT_UNKNOWN
Definition: audio/raw.h:46
void pw_protocol_native0_init(struct pw_protocol *protocol)
struct sockaddr_un addr
Definition: module-protocol-native.c:134
int spa_debug_mem(int indent, const void *data, size_t size)
Definition: obj-x86_64-linux-gnu/doc/spa/debug/mem.h:43
void * spa_pod_from_data(void *data, size_t maxsize, off_t offset, size_t size)
Definition: iter.h:135
#define PW_TYPE_INTERFACE_Node
Definition: src/pipewire/node.h:50
struct pw_protocol_native_connection * connection
Definition: module-protocol-native.c:113
struct spa_hook context_listener
Definition: module-access.c:146
struct pw_rtkit_bus * system_bus
Definition: module-rtkit.c:89
void pw_stream_add_listener(struct pw_stream *stream, struct spa_hook *listener, const struct pw_stream_events *events, void *data)
Definition: stream.c:1472
struct spa_list client_list
Definition: module-protocol-simple.c:140
struct pw_properties * source_props
Definition: module-echo-cancel.c:153
void pw_proxy_unref(struct pw_proxy *proxy)
Definition: proxy.c:292
A Buffer.
Definition: buffer/buffer.h:93
uint32_t port
Definition: module-filter-chain.c:196
void(* destroy)(struct pw_protocol_client *client)
Definition: protocol.h:66
#define PW_PERM_ALL
Definition: permission.h:61
float control_data
Definition: module-filter-chain.c:158
struct spa_pod * spa_latency_build(struct spa_pod_builder *builder, uint32_t id, const struct spa_latency_info *info)
Definition: latency-utils.h:102
#define PW_KEY_FACTORY_ID
Factory properties.
Definition: src/pipewire/keys.h:259
struct spa_ringbuffer ring
Definition: module-pulse-tunnel.c:114
Definition: pipewire.c:62
#define MODULE_USAGE
Definition: module-zeroconf-discover.c:57
#define ROC_DEFAULT_IP
Definition: module-roc-source.c:96
#define PW_KEY_NODE_DESCRIPTION
localized human readable node one-line description.
Definition: src/pipewire/keys.h:140
uint32_t size
requested input size for resampler
Definition: io.h:289
#define NAME
Definition: module-roc-source.c:91
#define _(String)
Definition: src/pipewire/i18n.h:37
Definition: module-filter-chain.c:128
struct spa_source * flush_timeout
Definition: module-profiler.c:84
#define MODE_PLAYBACK
Definition: module-pulse-tunnel.c:91
#define PW_KEY_NODE_PASSIVE
indicate that a node wants passive links on output/input/all ports when the value is "out"/"in"/"true...
Definition: src/pipewire/keys.h:176
#define PW_KEY_NODE_NAME
node name
Definition: src/pipewire/keys.h:138
void pw_thread_utils_set(struct spa_thread_utils *impl)
Definition: thread.c:84
int pw_impl_port_is_linked(struct pw_impl_port *port)
check is a port has links, return 0 if not, 1 if it is linked
Definition: impl-port.c:1366
struct factory_data * data
Definition: module-adapter.c:69
int pipewire__module_init(struct pw_impl_module *module, const char *args)
Definition: module-protocol-pulse.c:89
const char * pw_get_host_name(void)
Get the host name.
Definition: pipewire.c:787
struct pw_context * pw_core_get_context(struct pw_core *core)
Get the context object used to created this core.
Definition: core.c:132
#define PW_VERSION_IMPL_NODE_EVENTS
Definition: impl-node.h:52
Definition: protocol.h:103
int nice_level
Definition: module-rtkit.c:97
Definition: module-filter-chain.c:199
#define pw_loop_add_io(l,...)
Definition: src/pipewire/loop.h:71
#define ROC_DEFAULT_SOURCE_PORT
Definition: module-roc-sink.c:94
void pw_resource_errorf(struct pw_resource *resource, int res, const char *error,...) 1(3
#define SPA_VERSION_THREAD_UTILS_METHODS
Definition: obj-x86_64-linux-gnu/doc/spa/support/thread.h:56
uint32_t permissions
bitmask of above permissions
Definition: permission.h:66
#define PW_KEY_NODE_LATENCY
the requested latency of the node as a fraction.
Definition: src/pipewire/keys.h:154
int pw_rtkit_get_min_nice_level(struct pw_rtkit_bus *connection, int *min_nice_level)
Definition: module-rtkit.c:307
struct pw_export_type export_metadata
Definition: module-metadata.c:66
bool spa_json_is_null(const char *val, int len)
Definition: json.h:230
void pw_stream_destroy(struct pw_stream *stream)
Destroy a stream.
Definition: stream.c:1419
pthread_t thread
Definition: module-rtkit.c:78
#define PW_VERSION_RESOURCE_EVENTS
Definition: resource.h:61
#define PW_KEY_AUDIO_RATE
an audio samplerate
Definition: src/pipewire/keys.h:306
@ PW_STREAM_STATE_UNCONNECTED
unconnected
Definition: stream.h:169
uint64_t position
current position
Definition: io.h:141
struct spa_hook module_listener
Definition: module-roc-sink.c:100
#define DEFAULT_LATENCY_MSEC
Definition: module-pulse-tunnel.c:86
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME)
struct pw_proxy * pw_core_find_proxy(struct pw_core *core, uint32_t id)
Get the proxy with the given id.
Definition: core.c:269
#define SPA_IO_OUT
Definition: system.h:56
struct spa_hook playback_listener
Definition: module-protocol-simple.c:120
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME)
unsigned long notify[MAX_PORTS]
Definition: module-filter-chain.c:143
@ SPA_AUDIO_CHANNEL_FL
front left
Definition: audio/raw.h:177
struct spa_list link_list
Definition: module-filter-chain.c:154
@ SPA_AUDIO_FORMAT_S24
Definition: audio/raw.h:114
struct pw_stream * capture
Definition: module-echo-cancel.c:151
#define NAME
Definition: module-filter-chain.c:50
struct impl * impl
Definition: module-filter-chain.c:205
struct pw_global * pw_impl_module_get_global(struct pw_impl_module *module)
Get the global of a module.
Definition: impl-module.c:342
bool capture
Definition: module-protocol-simple.c:98
@ SPA_AUDIO_FORMAT_S24_BE
Definition: audio/raw.h:66
int pw_impl_node_register(struct pw_impl_node *node, struct pw_properties *properties)
Complete initialization of the node and register.
Definition: impl-node.c:656
void pw_resource_add_listener(struct pw_resource *resource, struct spa_hook *listener, const struct pw_resource_events *events, void *data)
Add an event listener.
Definition: resource.c:166
int pipewire__module_init(struct pw_impl_module *module, const char *args)
Definition: module-adapter.c:315
struct pw_loop * loop
Definition: module-protocol-simple.c:89
#define SPA_VERSION_THREAD_UTILS
Definition: obj-x86_64-linux-gnu/doc/spa/support/thread.h:51
#define spa_cpu_get_flags(c)
Definition: cpu.h:144
AvahiProtocol protocol
Definition: module-zeroconf-discover.c:91
struct pw_stream * capture
Definition: module-roc-sink.c:108
struct spa_list link_list
Definition: module-link-factory.c:62
void spa_json_init(struct spa_json *iter, const char *data, size_t size)
Definition: json.h:59
unsigned int unloading
Definition: module-roc-source.c:117
char * remote_ip
Definition: module-roc-sink.c:122
char name[64]
clock name prefixed with API, set by node.
Definition: io.h:136
uint32_t mode
Definition: module-pulse-tunnel.c:93
uint32_t n_input
Definition: module-filter-chain.c:136
uint32_t external
Definition: module-filter-chain.c:156
struct pw_properties * capture_props
Definition: module-filter-chain.c:237
struct port input_port[MAX_PORTS]
Definition: module-filter-chain.c:171
int pw_impl_factory_register(struct pw_impl_factory *factory, struct pw_properties *properties)
Definition: impl-factory.c:177
Node events, listen to them with pw_impl_node_add_listener.
Definition: impl-node.h:51
#define SPA_IO_ERR
Definition: system.h:57
void * aec
Definition: module-echo-cancel.c:176
int pw_core_disconnect(struct pw_core *core)
disconnect and destroy a core
Definition: core.c:489
struct spa_hook module_listener
Definition: module-protocol-native.c:101
struct spa_list link
Definition: context.h:148
struct spa_source * resume
Definition: module-protocol-native.c:139
struct pw_context * context
Definition: module-protocol-native.c:109
struct graph graph
Definition: module-filter-chain.c:252
uint64_t duration
duration of current cycle
Definition: io.h:142
Definition: module-adapter.c:68
int pw_stream_connect(struct pw_stream *stream, enum pw_direction direction, uint32_t target_id, enum pw_stream_flags flags, const struct spa_pod **params, uint32_t n_params)
Connect a stream for input or output on port_path.
Definition: stream.c:1603
#define DEFAULT_FORMAT
Definition: module-protocol-simple.c:63
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME)
struct pw_impl_node * adapter
Definition: module-adapter.c:71
#define DEFAULT_FORMAT
Definition: module-example-source.c:59
uint32_t key
key of property, list of valid keys depends on the object type
Definition: pod/pod.h:200
@ SPA_LOG_LEVEL_DEBUG
Definition: obj-x86_64-linux-gnu/doc/spa/support/log.h:62
#define SPA_FLAG_IS_SET(field, flag)
Definition: defs.h:73
char * resampler_profile
Definition: module-roc-source.c:125
void spa_pod_parser_pod(struct spa_pod_parser *parser, const struct spa_pod *pod)
Definition: parser.h:64
Definition: protocol.h:77
#define SPA_IO_CLOCK_FLAG_FREEWHEEL
Definition: io.h:133
void spa_list_init(struct spa_list *list)
Definition: list.h:44
struct spa_node * node
Definition: alsa-monitor.c:143
Module events.
Definition: module.h:69
#define spa_list_for_each_safe(pos, tmp, head, member)
Definition: list.h:129
#define PW_KEY_LINK_OUTPUT_PORT
output port id of a link
Definition: src/pipewire/keys.h:201
void spa_pod_builder_init(struct spa_pod_builder *builder, void *data, uint32_t size)
Definition: builder.h:96
struct spa_hook client_listener
Definition: module-protocol-native.c:145
struct spa_chunk * chunk
valid chunk of memory
Definition: buffer/buffer.h:89
struct pw_properties * props
Definition: module-roc-source.c:105
Definition: utils/dict.h:48
struct pw_stream * sink
Definition: module-echo-cancel.c:164
unsigned int activated
Definition: module-protocol-native.c:140
struct server * local
Definition: module-protocol-native.c:104
#define DEFAULT_RT_PRIO
Definition: module-rt.c:57
#define PW_VERSION_IMPL_FACTORY_IMPLEMENTATION
Definition: impl-factory.h:63
#define PW_KEY_NODE_TARGET
node wants to be connected to the target node/session
Definition: src/pipewire/keys.h:152
int spa_pod_builder_string(struct spa_pod_builder *builder, const char *str)
Definition: builder.h:303
int pw_impl_port_add(struct pw_impl_port *port, struct pw_impl_node *node)
Add a port to a node.
Definition: impl-port.c:933
#define ROC_DEFAULT_REPAIR_PORT
Definition: module-roc-source.c:98
#define DEFAULT_POSITION
Definition: module-protocol-simple.c:66
struct pw_protocol * pw_context_find_protocol(struct pw_context *context, const char *name)
Definition: protocol.c:180
The module information.
Definition: module.h:43
bool spa_atoi32(const char *str, int32_t *val, int base)
Convert str to an int32_t with the given base and store the result in val.
Definition: string.h:109
struct spa_source * source
Definition: module-protocol-native.c:150
uint32_t id
Definition: module-link-factory.c:212
@ SPA_PROP_INFO_params
is part of params property (Bool)
Definition: props.h:51
@ SPA_DIRECTION_OUTPUT
Definition: defs.h:80
struct spa_hook module_listener
Definition: module-roc-source.c:104
#define SO_PEERSEC
Definition: module-protocol-native.c:88
#define DEFAULT_RT_TIME_HARD
Definition: module-rt.c:59
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME)
struct pw_protocol * pw_protocol_native_ext_client_node_init(struct pw_context *context)
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME)
#define pw_loop_signal_event(l,...)
Definition: src/pipewire/loop.h:76
struct pw_global * global
Definition: module-link-factory.c:78
#define SPA_TYPE_INTERFACE_ThreadUtils
Definition: obj-x86_64-linux-gnu/doc/spa/support/thread.h:50
struct spa_list server_list
Definition: module-protocol-simple.c:94
struct spa_list link_list
Definition: module-filter-chain.c:208
#define MAX_PORTS
Definition: module-filter-chain.c:111
struct graph_hndl hndl[MAX_HNDL]
Definition: module-filter-chain.c:217
int spa_pod_parser_get_float(struct spa_pod_parser *parser, float *value)
Definition: parser.h:172
struct pw_protocol * protocol
the owner protocol
Definition: protocol.h:79
#define RINGBUFFER_MASK
Definition: module-pulse-tunnel.c:84
const char * spa_dict_lookup(const struct spa_dict *dict, const char *key)
Definition: utils/dict.h:99
roc_sender * sender
Definition: module-roc-sink.c:119
struct spa_io_rate_match * rate_match
Definition: module-protocol-simple.c:122
int pipewire__module_init(struct pw_impl_module *module, const char *args)
Definition: module-loopback.c:395
#define DEFAULT_LATENCY
Definition: module-protocol-simple.c:67
int spa_json_parse_string(const char *val, int len, char *result)
Definition: json.h:316
rlim_t rt_time_hard
Definition: module-rt.c:85
struct spa_hook source_listener
Definition: module-echo-cancel.c:155
struct pw_stream * pw_stream_new(struct pw_core *core, const char *name, struct pw_properties *props)
Create a new unconneced Stream Object.
Definition: stream.c:1335
#define SPA_VERSION_DEVICE
Definition: obj-x86_64-linux-gnu/doc/spa/monitor/device.h:52
int spa_json_get_string(struct spa_json *iter, char *res, int maxlen)
Definition: json.h:360
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME)
struct spa_ringbuffer rec_ring
Definition: module-echo-cancel.c:158
struct spa_thread_utils thread_utils
Definition: module-rt.c:81
struct pw_impl_node * follower
Definition: module-adapter.c:72
struct graph * graph
Definition: module-filter-chain.c:164
#define NAME
Definition: module-protocol-simple.c:55
void * spa_support_find(const struct spa_support *support, uint32_t n_support, const char *type)
Find a support item of the given type.
Definition: plugin.h:95
const struct pw_properties * pw_context_get_properties(struct pw_context *context)
Get the context properties.
Definition: context.c:633
@ SPA_PARAM_EnumFormat
available formats as SPA_TYPE_OBJECT_Format
Definition: param.h:47
void * pw_protocol_get_user_data(struct pw_protocol *protocol)
Definition: protocol.c:84
struct spa_hook module_listener
Definition: module-zeroconf-discover.c:103
#define NAME
Definition: module-profiler.c:47
struct spa_io_clock clock
clock position of driver, always valid and read only
Definition: io.h:272
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME)
struct spa_hook module_listener
Definition: module-adapter.c:65
char name[512]
Definition: module-protocol-simple.c:114
#define PW_PERMISSION_INIT(id, p)
Definition: permission.h:69
int pipewire__module_init(struct pw_impl_module *module, const char *args)
Definition: module-zeroconf-discover.c:494
uint32_t rec_ringsize
Definition: module-echo-cancel.c:157
uint32_t n_hndl
Definition: module-filter-chain.c:176
#define SPA_MEMBER(b, o, t)
Deprecated, use SPA_PTROFF and SPA_PTROFF_ALIGN instead.
Definition: defs.h:172
#define PW_VERSION_CORE_EVENTS
Definition: core.h:118
int local_repair_port
Definition: module-roc-source.c:128
struct spa_list threads_list
Definition: module-rtkit.c:94
roc_address local_addr
Definition: module-roc-source.c:119
@ SPA_PROP_INFO_type
type and range/enums of property
Definition: props.h:44
#define PW_VERSION_IMPL_LINK_EVENTS
Definition: impl-link.h:48
#define SPA_AUDIO_INFO_RAW_INIT(...)
Definition: audio/raw.h:296
#define ROC_DEFAULT_SESS_LATENCY
Definition: module-roc-source.c:99
#define spa_strerror(err)
Definition: result.h:51
int int pw_stream_update_params(struct pw_stream *stream, const struct spa_pod **params, uint32_t n_params)
Complete the negotiation process with result code res.
Definition: stream.c:1883
#define MODULE_USAGE
Definition: module-example-source.c:64
struct spa_dict * props
extra properties
Definition: module.h:51
@ SPA_AUDIO_FORMAT_S24_32
Definition: audio/raw.h:110
struct pw_work_queue * work
Definition: module-echo-cancel.c:140
#define NAME
Definition: module-pulse-tunnel.c:57
unsigned int unloading
Definition: module-roc-sink.c:113
struct pw_protocol_server this
Definition: module-protocol-native.c:131
#define pw_profiler_resource_profile(r,...)
Definition: module-profiler.c:63
#define SPA_IO_IN
Definition: system.h:55
struct impl * impl
Definition: module-rtkit.c:76
#define PW_ID_CORE
default ID for the core object after connect
Definition: core.h:66
struct pw_resource * pw_resource_new(struct pw_impl_client *client, uint32_t id, uint32_t permissions, const char *type, uint32_t version, size_t user_data_size)
Make a new resource for client.
Definition: resource.c:44
struct pw_impl_client * pw_resource_get_client(struct pw_resource *resource)
Get the client owning this resource.
Definition: resource.c:128
const void * client_demarshal
Definition: protocol.h:100
struct port output_port[MAX_PORTS]
Definition: module-filter-chain.c:172
@ SPA_AUDIO_FORMAT_S24_LE
Definition: audio/raw.h:65
const struct pw_module_info * pw_impl_module_get_info(struct pw_impl_module *module)
Get the module info.
Definition: impl-module.c:378
@ SPA_TYPE_OBJECT_Props
Definition: obj-x86_64-linux-gnu/doc/spa/utils/type.h:89
@ SPA_AUDIO_FORMAT_S24P
Definition: audio/raw.h:91
int local_source_port
Definition: module-roc-source.c:127
void * pw_context_get_object(struct pw_context *context, const char *type)
get an object from the context
Definition: context.c:1491
#define pw_loop_add_timer(l,...)
Definition: src/pipewire/loop.h:77
uint32_t pw_work_queue_add(struct pw_work_queue *queue, void *obj, int res, pw_work_func_t func, void *data)
Add an item to the work queue.
Definition: work-queue.c:162
struct pw_properties * pw_properties_new_string(const char *args)
Make a new properties object from the given str.
Definition: properties.c:197
unsigned int need_flush
Definition: module-protocol-native.c:155
#define SPA_IO_HUP
Definition: system.h:58
#define pw_log_debug(...)
Definition: src/pipewire/log.h:155
int pw_impl_client_update_permissions(struct pw_impl_client *client, uint32_t n_permissions, const struct pw_permission *permissions)
Update the client permissions.
Definition: impl-client.c:647
struct tunnel_info info
Definition: module-zeroconf-discover.c:101
int pw_rtkit_make_high_priority(struct pw_rtkit_bus *connection, pid_t thread, int nice_level)
Definition: module-rtkit.c:384
int pipewire__module_init(struct pw_impl_module *module, const char *args)
Definition: module-example-sink.c:366
uint32_t play_ringsize
Definition: module-echo-cancel.c:167
struct spa_ringbuffer buffer
Definition: module-profiler.c:88
@ SPA_AUDIO_FORMAT_S16
Definition: audio/raw.h:108
Definition: module-protocol-native.c:107
#define PW_KEY_LINK_OUTPUT_NODE
output node id of a link
Definition: src/pipewire/keys.h:200
#define NAME
Definition: module-example-sink.c:54
int spa_json_next(struct spa_json *iter, const char **value)
Get the next token.
Definition: json.h:74
roc_address remote_source_addr
Definition: module-roc-sink.c:116
#define PW_KEY_NODE_VIRTUAL
the node is some sort of virtual object
Definition: src/pipewire/keys.h:174
#define SPA_FALLTHROUGH
SPA_FALLTHROUGH is an annotation to suppress compiler warnings about switch cases that fall through w...
Definition: defs.h:69
void * buffer
Definition: module-pulse-tunnel.c:115
struct spa_list node_list
Definition: module-adapter.c:61
#define PW_VERSION_IMPL_MODULE_EVENTS
Definition: impl-module.h:64
struct spa_list link
Definition: module-protocol-simple.c:130
int spa_pod_get_float(const struct spa_pod *pod, float *value)
Definition: iter.h:208
int spa_pod_builder_prop(struct spa_pod_builder *builder, uint32_t key, uint32_t flags)
Definition: builder.h:441
long unsigned rate
Definition: module-filter-chain.c:250
int(* set_paused)(struct pw_protocol_client *client, bool paused)
Definition: protocol.h:67
#define DEFAULT_RATE
Definition: module-example-sink.c:60
unsigned int busy
Definition: module-protocol-native.c:154
#define SPA_USEC_PER_MSEC
Definition: defs.h:193
const void * server_demarshal
Definition: protocol.h:98
void pw_impl_factory_destroy(struct pw_impl_factory *factory)
Definition: impl-factory.c:83
void pw_global_destroy(struct pw_global *global)
Destroy a global.
Definition: global.c:370
#define spa_list_first(head, type, member)
Definition: list.h:75
#define DEFAULT_POSITION
Definition: module-example-source.c:62
struct pw_context * module_context
Definition: module-roc-source.c:106
int pw_protocol_native_ext_profiler_init(struct pw_context *context)
const struct fc_descriptor * desc
Definition: module-filter-chain.c:194
#define SPA_MIN(a, b)
Definition: defs.h:128
@ SPA_AUDIO_CHANNEL_UNKNOWN
unspecified
Definition: audio/raw.h:172
#define PW_VERSION_GLOBAL_EVENTS
Definition: global.h:69
#define SPA_ID_INVALID
Definition: defs.h:187
uint8_t tmp[TMP_BUFFER]
Definition: module-profiler.c:89
struct pw_context * context
Definition: settings.c:43
void pw_impl_link_add_listener(struct pw_impl_link *link, struct spa_hook *listener, const struct pw_impl_link_events *events, void *data)
Add an event listener to link.
Definition: impl-link.c:1423
@ SPA_PROFILER_info
Generic info, counter and CPU load, (Struct( Long : counter, Float : cpu_load fast,...
Definition: profiler.h:44
uint32_t empty
Definition: module-profiler.c:83
#define SPA_POD_Fraction(val)
Definition: vararg.h:91
#define PW_KEY_MEDIA_CLASS
class Ex: "Video/Source"
Definition: src/pipewire/keys.h:285
int pw_properties_update_string(struct pw_properties *props, const char *str, size_t size)
Update the properties from the given string, overwriting any existing keys with the new values from s...
Definition: properties.c:154
int pw_properties_set(struct pw_properties *properties, const char *key, const char *value)
Set a property value.
Definition: properties.c:435
struct pw_impl_node * node
Definition: module-link-factory.c:304
#define PW_KEY_CLIENT_ID
Client properties.
Definition: src/pipewire/keys.h:131
struct spa_list link
link in protocol server_list
Definition: protocol.h:78
struct result_device_params_data data
Definition: impl-device.c:77
uint32_t position[SPA_AUDIO_MAX_CHANNELS]
Definition: audio/raw.h:293
#define MAX_CLIENTS
Definition: module-protocol-simple.c:69
uint32_t type
Definition: module-protocol-simple.c:136
#define PW_ID_ANY
Definition: core.h:69
struct spa_hook link_listener
Definition: module-link-factory.c:73
DBusConnection * bus
Definition: module-portal.c:92
@ SPA_AUDIO_CHANNEL_FR
front right
Definition: audio/raw.h:178
struct pw_proxy * pw_core_spa_node_export(struct pw_core *core, const char *type, const struct spa_dict *props, void *object, size_t user_data_size)
#define PW_KEY_SEC_GID
client gid, set by protocol
Definition: src/pipewire/keys.h:57
#define PW_KEY_MODULE_VERSION
a version string for the module.
Definition: src/pipewire/keys.h:256
unsigned long output[MAX_PORTS]
Definition: module-filter-chain.c:141
struct spa_hook resource_listener
Definition: module-link-factory.c:76
uint32_t size
size of valid data.
Definition: buffer/buffer.h:61
#define spa_dbus_connection_get(c)
Definition: dbus.h:112
#define DEFAULT_RT_TIME_SOFT
Definition: module-rt.c:58
Definition: impl-factory.h:62
void * hndl
Definition: module-filter-chain.c:201
#define FACTORY_USAGE
Definition: module-adapter.c:48
#define MAX_BUFSIZE_MS
Definition: module-echo-cancel.c:119
#define DEFAULT_INTERVAL
Definition: module-profiler.c:56
#define PW_KEY_OBJECT_REGISTER
If the object should be registered.
Definition: src/pipewire/keys.h:69
struct pw_core * core
Definition: module-roc-source.c:108
#define PW_KEY_DEVICE_ICON_NAME
an XDG icon name for the device.
Definition: src/pipewire/keys.h:240
struct pw_protocol_client this
Definition: module-protocol-native.c:108
void spa_ringbuffer_write_update(struct spa_ringbuffer *rbuf, int32_t index)
Update the write pointer to index.
Definition: ringbuffer.h:169
struct spa_hook core_proxy_listener
Definition: module-roc-sink.c:106
pa_context * pa_context
Definition: module-pulse-tunnel.c:119
struct spa_source * source
Definition: module-protocol-native.c:111
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME)
struct port notify_port[MAX_PORTS]
Definition: module-filter-chain.c:174
struct pw_impl_factory * this
Definition: module-adapter.c:59
void spa_ringbuffer_read_update(struct spa_ringbuffer *rbuf, int32_t index)
Update the read pointer to index.
Definition: ringbuffer.h:119
#define NAME
Definition: module-zeroconf-discover.c:52
struct spa_hook capture_listener
Definition: module-echo-cancel.c:152
const char * spa_debug_type_short_name(const char *name)
Definition: types.h:60
uint32_t n_clients
Definition: module-protocol-simple.c:141
void pw_resource_error(struct pw_resource *resource, int res, const char *error)
Generate an error for a resource.
Definition: resource.c:256
struct pw_work_queue * work
Definition: module-roc-sink.c:99
#define MODULE_USAGE
Definition: module-access.c:130
#define PW_PERM_X
methods can be called on the object.
Definition: permission.h:49
char path[PATH_MAX]
Definition: module-filter-chain.c:122
struct pw_proxy * pw_core_node_export(struct pw_core *core, const char *type, const struct spa_dict *props, void *object, size_t user_data_size)
struct spa_dbus_connection * spa_dbus_get_connection(struct spa_dbus *dbus, enum spa_dbus_type type)
Definition: dbus.h:137
#define pw_log_warn(...)
Definition: src/pipewire/log.h:153
int session_factory_init(struct pw_impl_module *module)
struct spa_hook capture_listener
Definition: module-roc-sink.c:109
const char * name
name of the module
Definition: module.h:45
Definition: module-protocol-native.c:130
uint64_t change_mask
bitfield of changed fields since last call
Definition: module.h:50
#define SPA_POD_String(val)
Definition: vararg.h:81
const struct pw_factory_info * pw_impl_factory_get_info(struct pw_impl_factory *factory)
Get the factory info.
Definition: impl-factory.c:233
struct spa_fraction rate
rate for position/duration/delay
Definition: io.h:140
#define NAME
Definition: module-rt.c:49
struct spa_data * datas
array of data members
Definition: buffer/buffer.h:97
struct pw_resource * pw_impl_client_get_core_resource(struct pw_impl_client *client)
Get the client core resource.
Definition: impl-client.c:535
struct spa_buffer * buffer
the spa buffer
Definition: stream.h:176
Data for a buffer this stays constant for a buffer.
Definition: buffer/buffer.h:70
struct pw_properties * properties
Definition: module-access.c:144
uint32_t type
Definition: policy-node.c:121
const char unsigned long int n
Definition: src/pipewire/i18n.h:35
int pipewire__module_init(struct pw_impl_module *module, const char *args)
Definition: module-profiler.c:356
struct pw_impl_metadata * impl
Definition: impl-metadata.c:262
struct spa_source * source
Definition: module-protocol-native.c:138
const char * type
Definition: module-zeroconf-discover.c:93
struct pw_core * core
Definition: module-roc-sink.c:104
struct pw_context * module_context
Definition: module-roc-sink.c:102
uint32_t n_notify
Definition: module-filter-chain.c:139
#define SPA_JSON_SAVE(iter)
Definition: json.h:70
@ SPA_AUDIO_FORMAT_F64
Definition: audio/raw.h:121
struct pw_control this
Definition: control.c:34
#define PW_KEY_OBJECT_LINGER
the object lives on even after the client that created it has been destroyed
Definition: src/pipewire/keys.h:67
#define SERVICE_TYPE_SINK
Definition: module-zeroconf-discover.c:66
unsigned int unloading
Definition: module-echo-cancel.c:183
int spa_json_enter_array(struct spa_json *iter, struct spa_json *sub)
Definition: json.h:224
struct pw_properties * pw_properties_copy(const struct pw_properties *properties)
Copy a properties object.
Definition: properties.c:222
struct pw_properties * playback_props
Definition: module-roc-source.c:114
int pipewire__module_init(struct pw_impl_module *module, const char *args)
Definition: module-example-source.c:386
struct pw_context * pw_impl_node_get_context(struct pw_impl_node *node)
Get the context of this node.
Definition: impl-node.c:1262
Definition: module-zeroconf-discover.c:99
#define pw_loop_invoke(l,...)
Definition: src/pipewire/loop.h:63
#define PW_KEY_ACCESS
how the client access is controlled
Definition: src/pipewire/keys.h:48
struct spa_list link
Definition: pipewire.c:63
int remote_repair_port
Definition: module-roc-sink.c:124
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME)
struct pw_core * core
Definition: module-protocol-simple.c:110
int64_t delay
delay between position and hardware, positive for capture, negative for playback
Definition: io.h:143
bool linger
Definition: module-link-factory.c:83
struct spa_hook adapter_listener
Definition: module-adapter.c:73
int client_endpoint_factory_init(struct pw_impl_module *module)
unsigned int need_flush
Definition: module-protocol-native.c:120
void pw_proxy_add_listener(struct pw_proxy *proxy, struct spa_hook *listener, const struct pw_proxy_events *events, void *data)
Add an event listener to proxy.
Definition: proxy.c:197
Definition: protocol.h:90
void pw_impl_client_destroy(struct pw_impl_client *client)
Destroy a previously created client.
Definition: impl-client.c:578
char * local_ip
Definition: module-roc-source.c:126
#define RLIMIT_RTTIME
Definition: module-rtkit.c:140
void spa_hook_remove(struct spa_hook *hook)
Remove a hook.
Definition: hook.h:354
void * pw_resource_get_user_data(struct pw_resource *resource)
Get the user data for the resource, the size was given in pw_resource_new.
Definition: resource.c:160
#define PW_KEY_REMOTE_INTENTION
The intention of the remote connection, "generic", "screencast".
Definition: src/pipewire/keys.h:104
uint32_t aec_blocksize
Definition: module-echo-cancel.c:177
@ SPA_DBUS_TYPE_SESSION
The login session bus.
Definition: dbus.h:45
struct spa_hook module_listener
Definition: module-access.c:147
const char * name
Definition: module-link-factory.c:213
#define SPA_POD_Long(val)
Definition: vararg.h:65
#define pw_protocol_client_disconnect(c)
Definition: protocol.h:73
unsigned long p
Definition: module-filter-chain.c:152
char * local_ip
Definition: module-roc-sink.c:121
#define pw_log_info(...)
Definition: src/pipewire/log.h:154
uint32_t version
Definition: module.h:71
unsigned int n_deps
Definition: module-filter-chain.c:179
#define spa_pod_builder_add_struct(b,...)
Definition: builder.h:658
@ SPA_AUDIO_FORMAT_F32
Definition: audio/raw.h:120
struct pw_stream * capture
Definition: module-protocol-simple.c:116
struct pw_resource * bound_resource
Definition: module-adapter.c:75
#define DEFAULT_PORT
Definition: module-protocol-simple.c:60
void pw_impl_node_destroy(struct pw_impl_node *node)
Destroy a node.
Definition: impl-node.c:1726
@ SPA_AUDIO_FORMAT_F32P
Definition: audio/raw.h:92
int pw_impl_node_for_each_port(struct pw_impl_node *node, enum pw_direction direction, int(*callback)(void *data, struct pw_impl_port *port), void *data)
Iterate the ports in the given direction.
Definition: impl-node.c:1805
const struct spa_type_info spa_type_audio_format[]
Definition: param/audio/type-info.h:42
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME)
int spa_debug_pod(int indent, const struct spa_type_info *info, const struct spa_pod *pod)
Definition: debug/pod.h:200
void * data
optional data pointer
Definition: buffer/buffer.h:88
#define NAME
Definition: module-client-node.c:42
struct spa_list node_list
Definition: module-filter-chain.c:207
struct pw_resource * resource
Definition: module-link-factory.c:75
#define PW_VERSION_CONTEXT_EVENTS
Definition: context.h:73
struct spa_io_rate_match * rate_match
Definition: module-example-source.c:98
@ SPA_AUDIO_FORMAT_S8
Definition: audio/raw.h:51
struct pw_resource * resource
Definition: impl-core.c:76
pw_link_state
Definition: link.h:58
Definition: pod/pod.h:161
void pw_impl_node_add_listener(struct pw_impl_node *node, struct spa_hook *listener, const struct pw_impl_node_events *events, void *data)
Add an event listener.
Definition: impl-node.c:1711
@ PW_STREAM_STATE_STREAMING
streaming
Definition: stream.h:172
char label[256]
Definition: module-filter-chain.c:132
unsigned int do_disconnect
Definition: module-roc-source.c:116
uint32_t size
Definition: builder.h:65
struct spa_hook conn_listener
Definition: module-protocol-native.c:152
struct spa_ringbuffer play_ring
Definition: module-echo-cancel.c:168
@ SPA_TYPE_OBJECT_PropInfo
Definition: obj-x86_64-linux-gnu/doc/spa/utils/type.h:88
void * out_buffer[SPA_AUDIO_MAX_CHANNELS]
Definition: module-echo-cancel.c:171
@ SPA_PARAM_PropInfo
property information as SPA_TYPE_OBJECT_PropInfo
Definition: param.h:45
int pw_work_queue_cancel(struct pw_work_queue *queue, void *obj, uint32_t id)
Cancel a work item.
Definition: work-queue.c:216
#define PW_KEY_FACTORY_USAGE
the usage of the factory
Definition: src/pipewire/keys.h:261
struct spa_dbus_connection * conn
Definition: module-portal.c:91
void spa_ringbuffer_init(struct spa_ringbuffer *rbuf)
Initialize a spa_ringbuffer with size.
Definition: ringbuffer.h:58
struct spa_ringbuffer out_ring
Definition: module-echo-cancel.c:173
@ SPA_AUDIO_FORMAT_S32
Definition: audio/raw.h:112
#define PW_VERSION_PROTOCOL_IMPLEMENTATION
Definition: protocol.h:104
#define PW_DEFAULT_REMOTE
The default remote name to connect to.
Definition: core.h:63
struct spa_pod value
Definition: pod/pod.h:212
struct spa_loop * loop
wrapped loop
Definition: src/pipewire/loop.h:49
Definition: module-protocol-native.c:143
struct graph_port output[MAX_PORTS]
Definition: module-filter-chain.c:214
unsigned int disconnect
Definition: module-protocol-simple.c:124
void(* info)(void *object, const struct pw_module_info *info)
Notify module info.
Definition: module.h:77
struct pw_protocol_native_connection * connection
Definition: module-protocol-native.c:151
int pw_stream_queue_buffer(struct pw_stream *stream, struct pw_buffer *buffer)
Submit a buffer for playback or recycle a buffer for capture.
Definition: stream.c:2047
struct pw_module_info * pw_module_info_merge(struct pw_module_info *info, const struct pw_module_info *update, bool reset)
Merge and existing pw_module_info with update.
Definition: introspect.c:363
uint32_t busy
Definition: module-profiler.c:82
#define MODULE_USAGE
Definition: module-protocol-pulse.c:51
#define pw_protocol_client_connect_fd(c, fd, cl)
Definition: protocol.h:71
Definition: module-protocol-native.c:99
#define MODULE_USAGE
Definition: module-pulse-tunnel.c:62
@ SPA_AUDIO_FORMAT_S16P
Definition: audio/raw.h:88
#define DEFAULT_RATE
Definition: module-example-source.c:60
@ PW_STREAM_FLAG_MAP_BUFFERS
mmap the buffers except DmaBuf
Definition: stream.h:254
struct spa_io_rate_match * play_rate_match
Definition: module-echo-cancel.c:169
#define NAME
Definition: module-echo-cancel.c:112
uint32_t new_id
Definition: module-adapter.c:77
#define SPA_POD_Id(val)
Definition: vararg.h:56
#define DEFAULT_RATE
Definition: module-protocol-simple.c:64
uint32_t n_input
Definition: module-filter-chain.c:210
Extra supporting infrastructure passed to the init() function of a factory.
Definition: plugin.h:89
struct pw_protocol * pw_protocol_new(struct pw_context *context, const char *name, size_t user_data_size)
Definition: protocol.c:49
uint64_t next_nsec
estimated next wakeup time in nanoseconds
Definition: io.h:146
struct node * node
Definition: module-filter-chain.c:149
int(* add_listener)(void *object, struct spa_hook *listener, const struct pw_module_events *events, void *data)
Definition: module.h:88
AvahiServiceBrowser * sink_browser
Definition: module-zeroconf-discover.c:81
#define DEFAULT_IDLE
Definition: module-profiler.c:55
struct pw_stream * source
Definition: module-echo-cancel.c:154
uint32_t pw_global_get_id(struct pw_global *global)
Get the unique id of the global.
Definition: global.c:225
int fd_lock
Definition: module-protocol-native.c:133
#define SPA_UNLIKELY(x)
Definition: defs.h:242
struct spa_list l
Definition: module-link-factory.c:71
struct pw_properties * pw_properties_new(const char *key,...) 1
Make a new properties object.
Definition: properties.c:98
#define pw_loop_update_io(l,...)
Definition: src/pipewire/loop.h:72
int pw_protocol_native_ext_session_manager_init(struct pw_context *context)
#define SPA_NSEC_PER_MSEC
Definition: defs.h:190
uint64_t nsec
time in nanoseconds against monotonic clock
Definition: io.h:139
Resource events.
Definition: resource.h:60
#define PW_KEY_MODULE_USAGE
a human readable usage description of the module's arguments.
Definition: src/pipewire/keys.h:254
struct spa_hook capture_listener
Definition: module-protocol-simple.c:117
#define pw_core_add_listener(c,...)
Definition: core.h:328
struct pw_properties * props
Definition: module-roc-sink.c:101
uint32_t n_client_methods
number of client methods
Definition: protocol.h:95
int pw_properties_setf(struct pw_properties *properties, const char *key, const char *format,...) 1(3
struct pw_stream * stream
Definition: module-example-sink.c:96
struct port * control_port[MAX_CONTROLS]
Definition: module-filter-chain.c:220
struct pw_context * pw_impl_module_get_context(struct pw_impl_module *module)
Get the context of a module.
Definition: impl-module.c:336
const char * id
Definition: media-session.c:115
struct protocol_compat_v2 compat_v2
Definition: module-protocol-native.c:157
#define RLIMIT_RTTIME
Definition: module-rt.c:68
#define RTKIT_OBJECT_PATH
Definition: module-rtkit.c:137
int pipewire__module_init(struct pw_impl_module *module, const char *args)
Definition: module-link-factory.c:504
struct pw_protocol_pulse * pulse
Definition: module-protocol-pulse.c:65
struct pw_resource * pw_impl_client_find_resource(struct pw_impl_client *client, uint32_t id)
Get a resource with the given id.
Definition: impl-client.c:541
const struct echo_cancel_info * aec_info
Definition: module-echo-cancel.c:175
#define SPA_TYPE_INTERFACE_CPU
The CPU features interface.
Definition: cpu.h:49
struct pw_impl_module * module
Definition: module-roc-source.c:102
int pw_impl_factory_update_properties(struct pw_impl_factory *factory, const struct spa_dict *dict)
Update the factory properties.
Definition: impl-factory.c:154
#define PW_KEY_SEC_PID
Various keys related to the identity of a client process and its security.
Definition: src/pipewire/keys.h:55
Module methods.
Definition: module.h:84
struct impl * impl
Definition: module-profiler.c:96
struct spa_list link
link in impl client_list
Definition: module-protocol-simple.c:106
struct pw_protocol * pw_protocol_native_ext_client_node0_init(struct pw_context *context)
int(* steal_fd)(struct pw_protocol_client *client)
Definition: protocol.h:64
void pw_impl_client_add_listener(struct pw_impl_client *client, struct spa_hook *listener, const struct pw_impl_client_events *events, void *data)
listen to events from this client
Definition: impl-client.c:614
@ SPA_PROFILER_driverBlock
generic driver info block (Struct( Int : driver_id, String : name, Long : driver prev_signal,...
Definition: profiler.h:63
void * hndl[MAX_HNDL]
Definition: module-filter-chain.c:177
void * rec_buffer[SPA_AUDIO_MAX_CHANNELS]
Definition: module-echo-cancel.c:156
int spa_pod_builder_push_struct(struct spa_pod_builder *builder, struct spa_pod_frame *frame)
Definition: builder.h:414
struct pw_core * core
Definition: module-echo-cancel.c:145
#define SPA_TYPE_INTERFACE_DBus
Definition: dbus.h:39
struct pw_work_queue * work_queue
Definition: module-protocol-simple.c:96
#define PW_KEY_PORT_ALIAS
port alias
Definition: src/pipewire/keys.h:187
void * pw_impl_link_get_user_data(struct pw_impl_link *link)
Get the user_data of a link, the size of the memory is given when constructing the link.
Definition: impl-link.c:1450
struct pw_context * context
Definition: filter.c:76
#define MAX_HNDL
Definition: module-filter-chain.c:110
void *(* create_object)(void *data, struct pw_resource *resource, const char *type, uint32_t version, struct pw_properties *properties, uint32_t new_id)
The function to create an object from this factory.
Definition: impl-factory.h:67
const char * filename
filename of the module
Definition: module.h:46
struct pw_export_type export_spadevice
Definition: module-client-device.c:64
#define NAME
Definition: module-loopback.c:48
#define MODULE_USAGE
Definition: module-protocol-simple.c:71
#define DEFAULT_RT_PRIO
Definition: module-rtkit.c:57
Definition: pipewire.c:83
struct server * server
Definition: module-protocol-native.c:148
int(* connect)(struct pw_protocol_client *client, const struct spa_dict *props, void(*done_callback)(void *data, int result), void *data)
Definition: protocol.h:59
Definition: properties.h:49
uint32_t frame_size
Definition: module-example-sink.c:99
int pipewire__module_init(struct pw_impl_module *module, const char *args)
Definition: module-client-device.c:167
#define PW_VERSION_IMPL_CLIENT_EVENTS
Definition: impl-client.h:89
void pw_properties_free(struct pw_properties *properties)
Free a properties object.
Definition: properties.c:364
uint32_t id
Definition: alsa-monitor.c:139
#define PW_KEY_CLIENT_ACCESS
how the client wants to be access controlled
Definition: src/pipewire/keys.h:49
int endpoint_stream_factory_init(struct pw_impl_module *module)
AvahiClient * client
Definition: module-zeroconf-discover.c:80
#define strndupa(s, n)
Definition: src/pipewire/utils.h:67
#define PW_TYPE_INTERFACE_Port
Definition: port.h:50
Core events.
Definition: core.h:117
int pipewire__module_init(struct pw_impl_module *module, const char *args)
Definition: module-portal.c:305
#define SPA_KEY_FACTORY_NAME
the name of a factory
Definition: plugin.h:211
#define pw_log_error(...)
Definition: src/pipewire/log.h:152
unsigned int do_disconnect
Definition: module-echo-cancel.c:182
struct pw_global * pw_impl_client_get_global(struct pw_impl_client *client)
Get the global associated with this client.
Definition: impl-client.c:547
int pw_impl_module_update_properties(struct pw_impl_module *module, const struct spa_dict *dict)
Update the module properties.
Definition: impl-module.c:354
struct spa_list input_link
Definition: module-filter-chain.c:186
Events for a stream.
Definition: stream.h:211
#define spa_list_append(list, item)
Definition: list.h:81
uint32_t idx
Definition: module-filter-chain.c:151
@ PW_STREAM_STATE_ERROR
the stream is in error
Definition: stream.h:168
const struct pw_properties * pw_impl_client_get_properties(struct pw_impl_client *client)
Get the client properties.
Definition: impl-client.c:553
uint32_t out_ringsize
Definition: module-echo-cancel.c:172
struct spa_list link
Definition: module-adapter.c:70