Go to the documentation of this file.
25 #ifndef PIPEWIRE_MEM_H
26 #define PIPEWIRE_MEM_H
100 #define PW_VERSION_MEMPOOL_EVENTS 0
145 static inline void pw_memblock_unref(
struct pw_memblock *mem)
191 #define PW_MAP_RANGE_INIT (struct pw_map_range){ 0, }
195 static inline void pw_map_range_init(
struct pw_map_range *range,
196 uint32_t offset, uint32_t size,
parameters to map a memory range
Definition: src/pipewire/mem.h:185
#define PW_VERSION_MODULE
Definition: module.h:39
uint32_t output_node
Definition: media-session.c:186
struct spa_hook listener
proxy listener
Definition: media-session.c:184
uint32_t version
Definition: src/pipewire/mem.h:101
struct pw_mempool * pool
owner pool
Definition: src/pipewire/mem.h:79
#define PW_KEY_FORMAT_DSP
format related properties
Definition: src/pipewire/keys.h:302
#define PW_VERSION_FACTORY
Definition: factory.h:42
A memory pool is a collection of pw_memblocks.
Definition: src/pipewire/mem.h:72
#define PW_DIRECTION_INPUT
Definition: port.h:57
struct spa_list link
Definition: mem.c:130
struct pw_memmap * pw_mempool_import_map(struct pw_mempool *pool, struct pw_mempool *other, void *data, uint32_t size, uint32_t tag[5])
Definition: mem.c:613
int int const char * pw_properties_get(const struct pw_properties *properties, const char *key)
Get a property.
Definition: properties.c:487
struct pw_node_info * pw_node_info_update(struct pw_node_info *info, const struct pw_node_info *update)
Definition: introspect.c:168
Definition: module-filter-chain.c:170
a mapped region of a pw_memblock
Definition: src/pipewire/mem.h:90
struct impl * impl
Definition: media-session.c:176
struct pw_memblock * pw_mempool_find_id(struct pw_mempool *pool, uint32_t id)
Find memblock for given id.
Definition: mem.c:747
struct spa_list link
Definition: mem.c:110
void spa_hook_list_join(struct spa_hook_list *list, struct spa_hook_list *save)
Definition: hook.h:366
struct spa_list output_link
Definition: module-filter-chain.c:174
size_t size
Definition: media-session.c:200
#define SPA_FLAG_CLEAR(field, flag)
Definition: defs.h:75
struct mapping * mapping
Definition: mem.c:129
void(* added)(void *data, struct pw_memblock *block)
a new memory block is added to the pool
Definition: src/pipewire/mem.h:107
void(* removed)(void *data, struct pw_memblock *block)
a memory block is removed from the pool
Definition: src/pipewire/mem.h:110
#define PW_VERSION_NODE
Definition: src/pipewire/node.h:52
#define PW_KEY_NODE_ID
Node keys.
Definition: src/pipewire/keys.h:137
void * ptr
Definition: mem.c:123
#define PW_VERSION_CLIENT_EVENTS
Definition: client.h:78
struct pw_map endpoint_links
list of struct endpoint_link
Definition: media-session.c:158
#define MFD_CLOEXEC
Definition: mem.c:70
const struct spa_dict * props
Definition: media-session.c:210
uint32_t version
Definition: core.h:430
struct pw_mempool * pw_mempool_new(struct pw_properties *props)
Create a new memory pool.
Definition: mem.c:133
uint32_t start
Definition: src/pipewire/mem.h:186
#define PW_TYPE_INTERFACE_Device
Definition: src/pipewire/device.h:37
uint32_t id
unique id
Definition: src/pipewire/mem.h:80
@ PW_MEMMAP_FLAG_NONE
Definition: src/pipewire/mem.h:57
unsigned int rescan_pending
Definition: media-session.c:167
@ PW_MEMBLOCK_FLAG_READWRITE
Definition: src/pipewire/mem.h:53
int pw_properties_update(struct pw_properties *props, const struct spa_dict *dict)
Update properties.
Definition: properties.c:298
@ SPA_AUDIO_CHANNEL_RR
rear right
Definition: audio/raw.h:184
const struct spa_support * pw_context_get_support(struct pw_context *context, uint32_t *n_support)
Get the context support objects.
Definition: context.c:560
#define spa_zero(x)
Definition: defs.h:303
#define SPA_TYPE_INTERFACE_Device
Definition: build-12683127/doc/spa/monitor/device.h:50
#define MFD_ALLOW_SEALING
Definition: mem.c:74
int last_seq
Definition: media-session.c:164
struct spa_port_info info
Definition: filter.c:101
const char * pw_proxy_get_type(struct pw_proxy *proxy, uint32_t *version)
Get the type and version of the proxy.
Definition: proxy.c:173
The core information.
Definition: core.h:73
int spa_json_container_len(struct spa_json *iter, const char *value, int len)
Definition: json.h:198
struct spa_list link
Definition: alsa-endpoint.c:92
struct spa_list blocks
Definition: mem.c:104
#define pw_registry_destroy(p,...)
Definition: core.h:521
struct pw_context * pw_context_new(struct pw_loop *main_loop, struct pw_properties *props, size_t user_data_size)
Make a new context object for a given main_loop.
Definition: context.c:249
struct pw_properties * props
Definition: filter.c:98
struct spa_list link
Definition: media-session.c:120
struct spa_list link
link in struct endpoint_link link_list or struct impl link_list
Definition: module-filter-chain.c:171
@ SPA_AUDIO_CHANNEL_MONO
mono stream
Definition: audio/raw.h:172
@ SPA_AUDIO_CHANNEL_SL
side left
Definition: audio/raw.h:178
struct pw_memblock * pw_mempool_find_fd(struct pw_mempool *pool, int fd)
Find memblock for given fd.
Definition: mem.c:761
@ PW_MEMMAP_FLAG_PRIVATE
writes will be private
Definition: src/pipewire/mem.h:62
struct spa_hook monitor_registry_listener
Definition: media-session.c:148
void pw_init(int *argc, char **argv[])
Initialize PipeWire.
Definition: pipewire.c:483
int spa_json_enter_object(struct spa_json *iter, struct spa_json *sub)
Definition: json.h:212
void pw_mempool_destroy(struct pw_mempool *pool)
Clear and destroy a pool.
Definition: mem.c:168
Definition: build-12683127/doc/spa/monitor/device.h:53
uint32_t type
Definition: build-12683127/doc/spa/utils/type.h:138
void(* callback)(void *data)
Definition: media-session.c:122
struct spa_list registry_event_list
pending registry events
Definition: media-session.c:153
const struct spa_type_info spa_type_audio_channel[]
Definition: param/audio/type-info.h:159
struct pw_memblock * block
owner memblock
Definition: src/pipewire/mem.h:91
#define pw_loop_leave(l)
Definition: src/pipewire/loop.h:69
void pw_port_info_free(struct pw_port_info *info)
Definition: introspect.c:283
struct spa_list link
link in impl node_list
Definition: module-filter-chain.c:151
struct spa_hook dbus_connection_listener
Definition: media-session.c:134
#define PW_KEY_CONFIG_NAME
a config file name
Definition: src/pipewire/keys.h:74
#define PW_TYPE_INTERFACE_Link
Definition: link.h:52
uint32_t pagesize
Definition: mem.c:105
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:158
uint8_t data[MAX_BUFFER]
Definition: module-profiler.c:87
struct pw_memblock * pw_mempool_alloc(struct pw_mempool *pool, enum pw_memblock_flags flags, uint32_t type, size_t size)
Create a new memblock.
Definition: mem.c:464
void pw_mempool_add_listener(struct pw_mempool *pool, struct spa_hook *listener, const struct pw_mempool_events *events, void *data)
Listen for events.
Definition: mem.c:186
bool spa_streq(const char *s1, const char *s2)
Definition: string.h:50
struct memblock * block
Definition: mem.c:117
#define spa_list_for_each(pos, head, member)
Definition: list.h:111
struct pw_main_loop * loop
Definition: media-session.c:132
void * pw_proxy_get_user_data(struct pw_proxy *proxy)
Get the user_data.
Definition: proxy.c:146
uint32_t size
size of memory
Definition: src/pipewire/mem.h:85
uint32_t flags
flags for the memory block on of enum pw_memblock_flags
Definition: src/pipewire/mem.h:82
#define SPA_ROUND_DOWN_N(num, align)
Definition: defs.h:222
@ PW_MEMBLOCK_FLAG_NONE
Definition: src/pipewire/mem.h:45
#define PW_TYPE_INTERFACE_Module
Definition: module.h:37
struct sm_node * obj
Definition: bluez-autoswitch.c:79
struct pw_endpoint_info info
Definition: alsa-endpoint.c:77
#define PW_VERSION_CORE
Definition: core.h:57
Definition: src/pipewire/loop.h:47
struct pw_properties * props
Definition: src/pipewire/mem.h:73
#define SPA_EXPORT
Definition: defs.h:208
struct port * output
Definition: module-filter-chain.c:176
Port events.
Definition: port.h:87
@ SPA_LOG_LEVEL_WARN
Definition: build-12683127/doc/spa/support/log.h:49
int seq
Definition: policy-ep.c:65
#define PW_VERSION_REGISTRY_EVENTS
Definition: core.h:429
#define pw_log_trace(...)
Definition: src/pipewire/log.h:90
@ PW_MEMBLOCK_FLAG_WRITABLE
memory is writable
Definition: src/pipewire/mem.h:47
uint32_t permissions
Definition: media-session.c:207
#define PW_VERSION_DEVICE
Definition: src/pipewire/device.h:39
@ PW_MEMMAP_FLAG_WRITE
map in write mode
Definition: src/pipewire/mem.h:59
#define SPA_ROUND_UP_N(num, align)
Definition: defs.h:223
@ PW_MEMMAP_FLAG_LOCKED
lock the memory into RAM
Definition: src/pipewire/mem.h:63
#define SPA_FLAG_UPDATE(field, flag, val)
Definition: defs.h:76
Definition: alsa-monitor.c:82
Definition: module-filter-chain.c:150
#define pw_mempool_emit_added(p, b)
Definition: mem.c:95
const char * type
Definition: media-session.c:208
void pw_proxy_destroy(struct pw_proxy *proxy)
destroy a proxy
Definition: proxy.c:229
struct pw_memblock * pw_mempool_find_ptr(struct pw_mempool *pool, const void *ptr)
Find memblock for given ptr.
Definition: mem.c:728
uint32_t offset
offset in first page with start of data
Definition: src/pipewire/mem.h:187
@ PW_MEMMAP_FLAG_READWRITE
Definition: src/pipewire/mem.h:64
#define SPA_PARAM_INFO_READ
Definition: param.h:68
Proxy events, use pw_proxy_add_listener.
Definition: proxy.h:111
struct pw_memblock * pw_mempool_import_block(struct pw_mempool *pool, struct pw_memblock *mem)
Import a block from another pool.
Definition: mem.c:602
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:316
void * ptr
mapped pointer
Definition: src/pipewire/mem.h:92
struct pw_main_loop * pw_main_loop_new(const struct spa_dict *props)
Create a new main loop.
Definition: main-loop.c:86
int sm_media_session_match_rules(const char *rules, size_t size, struct pw_properties *props)
Definition: match-rules.c:91
#define SPA_PTRDIFF(p1, p2)
Definition: defs.h:172
struct spa_list endpoint_link_list
Definition: media-session.c:157
#define SPA_PTROFF(ptr_, offset_, type_)
Return the address (buffer + offset) as pointer of type.
Definition: defs.h:159
struct spa_node * node
Definition: buffers.c:45
struct pw_proxy * proxy
proxy for link
Definition: media-session.c:183
struct spa_list link
Definition: mem.c:122
uint32_t id
Definition: filter.c:81
void pw_device_info_free(struct pw_device_info *info)
Free a pw_device_info.
Definition: introspect.c:412
struct pw_properties * props_store
Definition: media-session.c:215
#define SPA_POD_OBJECT_ID(obj)
Definition: pod/pod.h:167
struct endpoint_link * endpoint_link
Definition: media-session.c:191
struct spa_list sync_list
list of struct link
Definition: media-session.c:162
Definition: pipewire.c:68
void pw_deinit(void)
Definition: pipewire.c:563
#define PW_NODE_CHANGE_MASK_PARAMS
Definition: src/pipewire/node.h:78
void pw_proxy_add_object_listener(struct pw_proxy *proxy, struct spa_hook *listener, const void *funcs, void *data)
Add a listener for the events received from the remote object.
Definition: proxy.c:204
int32_t priority
Definition: policy-ep.c:80
uint32_t size
size in memblock
Definition: src/pipewire/mem.h:95
uint32_t id
Definition: module-echo-cancel.c:139
struct pw_properties * pw_properties_new_dict(const struct spa_dict *dict)
Make a new properties object from the given dictionary.
Definition: properties.c:126
#define pw_core_sync(c,...)
Definition: core.h:327
#define PW_TYPE_INTERFACE_Core
Definition: core.h:54
@ PW_MEMBLOCK_FLAG_DONT_NOTIFY
don't notify events
Definition: src/pipewire/mem.h:51
#define PW_VERSION_LINK
Definition: link.h:54
struct spa_audio_info_raw info
Definition: module-echo-cancel.c:145
void * data
Definition: media-session.c:123
struct sm_param this
Definition: media-session.c:116
struct spa_dict dict
dictionary of key/values
Definition: properties.h:50
struct spa_list link_list
map of endpoint_link
Definition: media-session.c:160
Definition: utils/dict.h:41
unsigned int do_unmap
Definition: mem.c:121
struct spa_hook monitor_listener
Definition: media-session.c:137
#define SPA_CONTAINER_OF(p, t, m)
Definition: defs.h:170
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:401
#define spa_list_consume(pos, head, member)
Definition: list.h:96
void pw_mempool_clear(struct pw_mempool *pool)
Clear a pool.
Definition: mem.c:156
void spa_hook_list_isolate(struct spa_hook_list *list, struct spa_hook_list *save, struct spa_hook *hook, const void *funcs, void *data)
Definition: hook.h:352
Definition: media-session.c:205
struct spa_list link
Definition: filter.c:89
Definition: impl-metadata.c:49
Registry events.
Definition: core.h:428
struct sm_client * obj
Definition: access-flatpak.c:52
uint32_t flags
flags for the mapping on of enum pw_memmap_flags
Definition: src/pipewire/mem.h:93
const char * name
Definition: build-12683127/doc/spa/utils/type.h:140
#define PW_KEY_LINK_INPUT_NODE
input node id of a link
Definition: src/pipewire/keys.h:198
unsigned int monitor
Definition: media-session.c:218
struct pw_properties * modules
Definition: media-session.c:130
#define PW_VERSION_PROXY_EVENTS
Definition: proxy.h:112
struct pw_loop * pw_main_loop_get_loop(struct pw_main_loop *loop)
Get the loop implementation.
Definition: main-loop.c:119
struct pw_memmap this
Definition: mem.c:128
void(* destroy)(void *data)
the pool is destroyed
Definition: src/pipewire/mem.h:104
Definition: media-session.c:119
uint32_t input_node
Definition: media-session.c:188
#define F_SEAL_GROW
Definition: mem.c:89
#define PW_DIRECTION_OUTPUT
Definition: port.h:58
struct spa_list memmaps
Definition: mem.c:112
Definition: src/pipewire/mem.h:99
struct port * input
Definition: module-filter-chain.c:177
struct pw_memblock this
Definition: mem.c:109
uint32_t id
Definition: media-session.c:206
void spa_list_remove(struct spa_list *elem)
Definition: list.h:69
int pw_main_loop_run(struct pw_main_loop *loop)
Run a main loop.
Definition: main-loop.c:145
struct pw_registry * monitor_registry
Definition: media-session.c:147
#define SPA_N_ELEMENTS(arr)
Definition: defs.h:109
struct pw_memmap * pw_mempool_find_tag(struct pw_mempool *pool, uint32_t tag[5], size_t size)
find a map with the given tag
Definition: mem.c:773
struct pw_client_info * pw_client_info_update(struct pw_client_info *info, const struct pw_client_info *update)
Update and existing pw_client_info with update.
Definition: introspect.c:421
int ref
Definition: mem.c:118
int spa_json_is_object(const char *val, int len)
Definition: json.h:208
#define PW_KEY_LINK_INPUT_PORT
input port id of a link
Definition: src/pipewire/keys.h:199
int fd
fd
Definition: src/pipewire/mem.h:84
uint32_t size
page aligned offset to map
Definition: src/pipewire/mem.h:188
uint32_t size
Definition: mem.c:120
#define PW_TYPE_INTERFACE_Node
Definition: src/pipewire/node.h:50
int ref
refcount
Definition: src/pipewire/mem.h:81
struct spa_hook registry_listener
Definition: media-session.c:145
#define PW_VERSION_NODE_EVENTS
Definition: src/pipewire/node.h:103
void pw_proxy_unref(struct pw_proxy *proxy)
Definition: proxy.c:290
#define F_ADD_SEALS
Definition: mem.c:84
@ PW_MEMBLOCK_FLAG_SEAL
seal the fd
Definition: src/pipewire/mem.h:48
void pw_memblock_free(struct pw_memblock *block)
Free a memblock.
Definition: mem.c:688
void(* info)(void *object, const struct pw_core_info *info)
Notify new core info.
Definition: core.h:126
struct pw_proxy * pw_core_export(struct pw_core *core, const char *type, const struct spa_dict *props, void *object, size_t user_data_size)
Export an object into the PipeWire instance associated with core.
Definition: core.c:274
#define spa_dict_for_each(item, dict)
Definition: utils/dict.h:58
uint32_t offset
Definition: mem.c:119
#define PW_KEY_CONFIG_PREFIX
a config prefix directory
Definition: src/pipewire/keys.h:73
#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
A hook, contains the structure with functions and the data passed to the functions.
Definition: hook.h:295
bool spa_json_is_null(const char *val, int len)
Definition: json.h:228
#define SPA_VERSION_DBUS_CONNECTION_EVENTS
Definition: dbus.h:55
uint32_t id
Definition: media-session.c:172
const void * events
Definition: media-session.c:199
The client information.
Definition: client.h:55
struct pw_loop * loop
Definition: module-protocol-simple.c:86
struct spa_list link
Definition: media-session.c:110
#define F_SEAL_SEAL
Definition: mem.c:87
struct pw_memmap * pw_mempool_map_id(struct pw_mempool *pool, uint32_t id, enum pw_memmap_flags flags, uint32_t offset, uint32_t size, uint32_t tag[5])
Map a region of a memory block with id.
Definition: mem.c:401
void spa_json_init(struct spa_json *iter, const char *data, size_t size)
Definition: json.h:59
#define F_SEAL_SHRINK
Definition: mem.c:88
uint32_t flags
Definition: audio/raw.h:287
int pw_core_disconnect(struct pw_core *core)
disconnect and destroy a core
Definition: core.c:488
@ PW_MEMBLOCK_FLAG_MAP
mmap the fd
Definition: src/pipewire/mem.h:49
#define SPA_FLAG_IS_SET(field, flag)
Definition: defs.h:73
int pw_core_set_paused(struct pw_core *core, bool paused)
Pause or resume the core.
Definition: core.c:475
struct pw_memmap * map
optional map when PW_MEMBLOCK_FLAG_MAP was given
Definition: src/pipewire/mem.h:86
void spa_list_init(struct spa_list *list)
Definition: list.h:44
#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 pw_node_info_free(struct pw_node_info *info)
Definition: introspect.c:226
#define PW_VERSION_REGISTRY
Definition: core.h:59
#define NAME
Definition: mem.c:44
#define pw_mempool_emit_removed(p, b)
Definition: mem.c:96
#define PW_VERSION_PORT
Definition: port.h:52
Definition: utils/dict.h:48
struct spa_hook_list hooks
Definition: media-session.c:155
bool seat_active
Definition: bluez-monitor.c:100
#define SPA_RESULT_IS_ASYNC(res)
Definition: result.h:46
int pw_memmap_free(struct pw_memmap *map)
Unmap a region.
Definition: mem.c:416
@ PW_MEMMAP_FLAG_READ
map in read mode
Definition: src/pipewire/mem.h:58
int pw_mempool_remove_id(struct pw_mempool *pool, uint32_t id)
Remove a memblock for given id.
Definition: mem.c:665
struct spa_hook proxy_policy_listener
Definition: media-session.c:142
uint32_t offset
offset in memblock
Definition: src/pipewire/mem.h:94
#define spa_dbus_connection_add_listener(c,...)
Definition: dbus.h:114
const char * spa_dict_lookup(const struct spa_dict *dict, const char *key)
Definition: utils/dict.h:99
Node events.
Definition: src/pipewire/node.h:102
int spa_json_parse_string(const char *val, int len, char *result)
Definition: json.h:314
char * key
Definition: impl-metadata.c:51
int pw_context_set_object(struct pw_context *context, const char *type, void *value)
add an object to the context
Definition: context.c:1408
Definition: media-session.c:196
#define SPA_VERSION_DEVICE
Definition: build-12683127/doc/spa/monitor/device.h:52
int spa_json_get_string(struct spa_json *iter, char *res, int maxlen)
Definition: json.h:358
size_t size
Definition: media-session.c:112
struct spa_node_info info
Definition: stream.c:137
struct spa_list link_list
list of struct link
Definition: media-session.c:179
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
int pw_main_loop_quit(struct pw_main_loop *loop)
Quit a main loop.
Definition: main-loop.c:131
struct pw_memmap * pw_memblock_map(struct pw_memblock *block, enum pw_memmap_flags flags, uint32_t offset, uint32_t size, uint32_t tag[5])
Map a region of a memory block.
Definition: mem.c:354
#define PW_VERSION_CORE_EVENTS
Definition: core.h:115
The device information.
Definition: src/pipewire/device.h:43
struct pw_registry * registry
Definition: media-session.c:144
int seq
Definition: media-session.c:121
void pw_proxy_ref(struct pw_proxy *proxy)
Definition: proxy.c:303
#define spa_strerror(err)
Definition: result.h:51
struct spa_list link
link in impl endpoint_list
Definition: alsa-endpoint.c:65
struct pw_core * monitor_core
Definition: media-session.c:136
void pw_core_info_free(struct pw_core_info *info)
Free a pw_core_info
Definition: introspect.c:156
int rescan_seq
list of struct sync
Definition: media-session.c:163
int pw_conf_load_conf(const char *prefix, const char *name, struct pw_properties *conf)
Definition: conf.c:344
uint32_t input_port
Definition: media-session.c:189
struct device * device
Definition: alsa-monitor.c:70
#define PW_ID_CORE
default ID for the core object after connect
Definition: core.h:66
struct pw_memblock * pw_mempool_import(struct pw_mempool *pool, enum pw_memblock_flags flags, uint32_t type, int fd)
Import an fd into the pool.
Definition: mem.c:565
Memory block structure.
Definition: src/pipewire/mem.h:78
int pw_conf_save_state(const char *prefix, const char *name, const struct pw_properties *conf)
int pw_proxy_sync(struct pw_proxy *proxy, int seq)
Generate an sync method for a proxy.
Definition: proxy.c:310
#define pw_log_debug(...)
Definition: src/pipewire/log.h:89
#define pw_loop_enter(l)
Definition: src/pipewire/loop.h:67
unsigned int scanning
Definition: media-session.c:166
void pw_context_destroy(struct pw_context *context)
destroy a context object, all resources except the main_loop will be destroyed
Definition: context.c:464
uint32_t tag[5]
user tag
Definition: src/pipewire/mem.h:96
Definition: module-protocol-native.c:103
#define PW_KEY_LINK_OUTPUT_NODE
output node id of a link
Definition: src/pipewire/keys.h:200
int spa_json_next(struct spa_json *iter, const char **value)
Get the next token.
Definition: json.h:72
uint32_t version
Definition: media-session.c:198
struct pw_endpoint_link_info info
Definition: media-session.c:174
struct pw_map map
Definition: mem.c:103
#define pw_log(lev,...)
Definition: src/pipewire/log.h:80
struct pw_properties * conf
Definition: alsa-monitor.c:120
Definition: alsa-endpoint.c:64
pw_memmap_flags
Definition: src/pipewire/mem.h:56
void pw_client_info_free(struct pw_client_info *info)
Free a pw_client_info.
Definition: introspect.c:445
#define SPA_MIN(a, b)
Definition: defs.h:123
Information about the device and parameters it supports.
Definition: build-12683127/doc/spa/monitor/device.h:60
@ SPA_AUDIO_CHANNEL_UNKNOWN
unspecified
Definition: audio/raw.h:169
#define SPA_ID_INVALID
Definition: defs.h:182
#define pw_loop_iterate(l,...)
Definition: src/pipewire/loop.h:68
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
#define spa_list_is_empty(l)
Definition: list.h:49
pw_memblock_flags
Flags passed to pw_mempool_alloc()
Definition: src/pipewire/mem.h:44
A list of hooks.
Definition: hook.h:284
const char * type
Definition: media-session.c:197
struct endpoint * endpoint
Definition: alsa-endpoint.c:93
struct pw_proxy * proxy
Definition: alsa-midi.c:56
struct pw_core_info * pw_core_info_update(struct pw_core_info *info, const struct pw_core_info *update)
Update and existing pw_core_info with update.
Definition: introspect.c:127
int pw_conf_load_state(const char *prefix, const char *name, struct pw_properties *conf)
Definition: conf.c:362
#define PW_KEY_DEVICE_ID
device properties
Definition: src/pipewire/keys.h:210
uint32_t output_port
Definition: media-session.c:187
int(* init)(void *object)
Definition: media-session.c:201
#define PW_TYPE_INTERFACE_Client
Definition: client.h:46
@ PW_MEMBLOCK_FLAG_READABLE
memory is readable
Definition: src/pipewire/mem.h:46
struct spa_dbus * dbus
Definition: media-session.c:133
const char * spa_debug_type_short_name(const char *name)
Definition: types.h:60
@ SPA_LOG_LEVEL_INFO
Definition: build-12683127/doc/spa/support/log.h:50
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:87
#define PW_VERSION_DEVICE_EVENTS
Definition: src/pipewire/device.h:68
char * value
Definition: impl-metadata.c:53
@ SPA_AUDIO_CHANNEL_SR
side right
Definition: audio/raw.h:179
struct spa_list node_list
Definition: alsa-monitor.c:113
#define pw_mempool_emit_destroy(p)
Definition: mem.c:94
struct spa_hook_list listener_list
Definition: mem.c:101
uint32_t version
Definition: media-session.c:209
struct pw_mempool this
Definition: mem.c:99
unsigned int allocated
Definition: media-session.c:219
#define pw_node_enum_params(c,...)
Definition: src/pipewire/node.h:200
struct pw_control this
Definition: control.c:34
A map.
Definition: map.h:55
int spa_json_enter_array(struct spa_json *iter, struct spa_json *sub)
Definition: json.h:222
struct pw_properties * pw_properties_copy(const struct pw_properties *properties)
Copy a properties object.
Definition: properties.c:222
Client events.
Definition: client.h:77
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:195
void spa_hook_remove(struct spa_hook *hook)
Remove a hook.
Definition: hook.h:336
@ SPA_DBUS_TYPE_SESSION
The login session bus.
Definition: dbus.h:45
#define SPA_POD_SIZE(pod)
Definition: pod/pod.h:42
#define pw_log_info(...)
Definition: src/pipewire/log.h:88
#define pw_loop_add_signal(l,...)
Definition: src/pipewire/loop.h:79
@ PW_MEMMAP_FLAG_TWICE
map the same area twice after each other, creating a circular ringbuffer
Definition: src/pipewire/mem.h:60
struct pw_device_info * pw_device_info_update(struct pw_device_info *info, const struct pw_device_info *update)
Update and existing pw_device_info with update.
Definition: introspect.c:368
int seq
Definition: media-session.c:214
void(* destroy)(void *object)
Definition: media-session.c:202
@ SPA_AUDIO_CHANNEL_RL
rear left
Definition: audio/raw.h:183
Definition: media-session.c:171
struct sm_device * obj
Definition: default-profile.c:101
#define PW_TYPE_INTERFACE_Factory
Definition: factory.h:40
unsigned int seat_active
Definition: media-session.c:168
struct sm_node * obj
Definition: restore-stream.c:75
#define PW_KEY_LINK_PASSIVE
indicate that a link is passive and does not cause the graph to be runnable.
Definition: src/pipewire/keys.h:202
#define PW_KEY_PORT_DIRECTION
the port direction, one of "in" or "out" or "control" and "notify" for control ports
Definition: src/pipewire/keys.h:185
struct spa_list object_list
all sm_objects
Definition: media-session.c:151
@ PW_MEMBLOCK_FLAG_DONT_CLOSE
don't close fd
Definition: src/pipewire/mem.h:50
void spa_hook_list_init(struct spa_hook_list *list)
Initialize a hook list to the empty list.
Definition: hook.h:305
uint64_t change_mask
Definition: build-12683127/doc/spa/node/node.h:66
spa_audio_channel
Definition: audio/raw.h:168
struct spa_list mappings
Definition: mem.c:111
struct pw_core * policy_core
Definition: media-session.c:140
struct spa_list link
Definition: media-session.c:217
struct spa_loop * loop
wrapped loop
Definition: src/pipewire/loop.h:49
struct sm_endpoint * obj
Definition: policy-ep.c:69
#define PW_VERSION_PORT_EVENTS
Definition: port.h:88
int sm_logind_start(struct sm_media_session *session)
Definition: logind.c:103
#define pw_device_enum_params(c,...)
Definition: src/pipewire/device.h:155
int spa_pod_is_object(const struct spa_pod *pod)
Definition: iter.h:381
#define PW_VERSION_CLIENT
Definition: client.h:48
Extra supporting infrastructure passed to the init() function of a factory.
Definition: plugin.h:89
#define PW_KEY_PRIORITY_SESSION
priority in session manager
Definition: src/pipewire/keys.h:97
struct pw_properties * pw_properties_new(const char *key,...) 1
Make a new properties object.
Definition: properties.c:98
uint32_t type
type of the fd, one of enum spa_data_type
Definition: src/pipewire/mem.h:83
#define pw_core_add_listener(c,...)
Definition: core.h:325
struct spa_list stream_list
Definition: alsa-endpoint.c:88
int pw_properties_setf(struct pw_properties *properties, const char *key, const char *format,...) 1(3
struct pw_map globals
Definition: media-session.c:150
const char * id
Definition: media-session.c:111
enum spa_direction direction
Definition: buffers.c:46
@ SPA_AUDIO_CHANNEL_FC
front center
Definition: audio/raw.h:176
struct pw_port_info * pw_port_info_update(struct pw_port_info *info, const struct pw_port_info *update)
Definition: introspect.c:237
The node information.
Definition: src/pipewire/node.h:70
const char * pw_get_library_version(void)
Get the currently running version.
Definition: pipewire.c:740
uint32_t id
Definition: filter.c:94
#define SPA_TYPE_INTERFACE_DBus
Definition: dbus.h:39
struct pw_proxy * proxy
Definition: media-session.c:212
struct spa_hook policy_listener
Definition: media-session.c:141
Definition: pipewire.c:80
#define PW_KEY_AUDIO_CHANNEL
audio related properties
Definition: src/pipewire/keys.h:305
Device events.
Definition: src/pipewire/device.h:67
#define PW_DEVICE_CHANGE_MASK_PARAMS
Definition: src/pipewire/device.h:46
Definition: properties.h:49
int monitor_seq
Definition: media-session.c:138
void spa_hook_list_clean(struct spa_hook_list *list)
Remove all hooks from the list.
Definition: hook.h:344
void pw_properties_free(struct pw_properties *properties)
Free a properties object.
Definition: properties.c:364
#define pw_registry_add_listener(p,...)
Registry.
Definition: core.h:507
#define pw_map_get_size(m)
Definition: map.h:62
#define spa_return_if_fail(expr)
Definition: defs.h:242
#define PW_TYPE_INTERFACE_Port
Definition: port.h:50
Core events.
Definition: core.h:114
#define pw_log_error(...)
Definition: src/pipewire/log.h:86
struct spa_list input_link
Definition: module-filter-chain.c:173
#define spa_list_append(list, item)
Definition: list.h:81
void pw_main_loop_destroy(struct pw_main_loop *loop)
Destroy a loop.
Definition: main-loop.c:96