PipeWire  0.3.29
Array Objects

An array object. More...

Data Structures

struct  pw_array
 

Macros

#define PW_ARRAY_INIT(extend)   (struct pw_array) { NULL, 0, 0, extend }
 
#define pw_array_get_len_s(a, s)   ((a)->size / (s))
 
#define pw_array_get_unchecked_s(a, idx, s, t)   SPA_PTROFF((a)->data,(idx)*(s),t)
 
#define pw_array_check_index_s(a, idx, s)   ((idx) < pw_array_get_len_s(a,s))
 
#define pw_array_get_len(a, t)   pw_array_get_len_s(a,sizeof(t))
 Get the number of items of type t in array. More...
 
#define pw_array_get_unchecked(a, idx, t)   pw_array_get_unchecked_s(a,idx,sizeof(t),t)
 Get the item with index idx and type t from array. More...
 
#define pw_array_check_index(a, idx, t)   pw_array_check_index_s(a,idx,sizeof(t))
 Check if an item with index idx and type t exist in array. More...
 
#define pw_array_first(a)   ((a)->data)
 
#define pw_array_end(a)   SPA_PTROFF((a)->data, (a)->size, void)
 
#define pw_array_check(a, p)   (SPA_PTROFF(p,sizeof(*p),void) <= pw_array_end(a))
 
#define pw_array_for_each(pos, array)
 
#define pw_array_consume(pos, array)
 
#define pw_array_remove(a, p)
 
#define pw_array_add_ptr(a, p)   *((void**) pw_array_add(a, sizeof(void*))) = (p)
 Add a pointer to array. More...
 
#define pw_log_level_enabled(lev)   (pw_log_level >= (lev))
 Check if a loglevel is enabled. More...
 
#define pw_log(lev, ...)
 
#define pw_log_error(...)   pw_log(SPA_LOG_LEVEL_ERROR,__VA_ARGS__)
 
#define pw_log_warn(...)   pw_log(SPA_LOG_LEVEL_WARN,__VA_ARGS__)
 
#define pw_log_info(...)   pw_log(SPA_LOG_LEVEL_INFO,__VA_ARGS__)
 
#define pw_log_debug(...)   pw_log(SPA_LOG_LEVEL_DEBUG,__VA_ARGS__)
 
#define pw_log_trace(...)   pw_log(SPA_LOG_LEVEL_TRACE,__VA_ARGS__)
 
#define pw_log_trace_fp(...)   pw_log(SPA_LOG_LEVEL_TRACE,__VA_ARGS__)
 

Functions

void pw_log_set (struct spa_log *log)
 Configure a logging module. More...
 
struct spa_logpw_log_get (void)
 Get the log interface. More...
 
void pw_log_set_level (enum spa_log_level level)
 Configure the logging level. More...
 
void pw_log_log (enum spa_log_level level, const char *file, int line, const char *func, const char *fmt,...) SPA_PRINTF_FUNC(5
 Log a message. More...
 
void void pw_log_logv (enum spa_log_level level, const char *file, int line, const char *func, const char *fmt, va_list args) SPA_PRINTF_FUNC(5
 Log a message. More...
 

Variables

enum spa_log_level pw_log_level
 The global log level. More...
 

Detailed Description

An array object.

The array is a dynamically resizable data structure that can hold items of the same size.

Macro Definition Documentation

◆ pw_array_add_ptr

#define pw_array_add_ptr (   a,
 
)    *((void**) pw_array_add(a, sizeof(void*))) = (p)

Add a pointer to array.

◆ pw_array_check

#define pw_array_check (   a,
 
)    (SPA_PTROFF(p,sizeof(*p),void) <= pw_array_end(a))

◆ pw_array_check_index

#define pw_array_check_index (   a,
  idx,
 
)    pw_array_check_index_s(a,idx,sizeof(t))

Check if an item with index idx and type t exist in array.

Referenced by pw_properties::pw_properties_iterate().

◆ pw_array_check_index_s

#define pw_array_check_index_s (   a,
  idx,
 
)    ((idx) < pw_array_get_len_s(a,s))

◆ pw_array_consume

#define pw_array_consume (   pos,
  array 
)
Value:
for (pos = (__typeof__(pos)) pw_array_first(array); \
pw_array_check(array, pos); \
pos = (__typeof__(pos)) pw_array_first(array))
#define pw_array_first(a)
Definition: array.h:68

◆ pw_array_end

#define pw_array_end (   a)    SPA_PTROFF((a)->data, (a)->size, void)

◆ pw_array_first

#define pw_array_first (   a)    ((a)->data)

◆ pw_array_for_each

#define pw_array_for_each (   pos,
  array 
)
Value:
for (pos = (__typeof__(pos)) pw_array_first(array); \
pw_array_check(array, pos); \
(pos)++)
#define pw_array_first(a)
Definition: array.h:68

Referenced by pw_context_destroy(), pw_context_find_spa_lib(), and pw_properties::pw_properties_clear().

◆ pw_array_get_len

#define pw_array_get_len (   a,
 
)    pw_array_get_len_s(a,sizeof(t))

Get the number of items of type t in array.

◆ pw_array_get_len_s

#define pw_array_get_len_s (   a,
 
)    ((a)->size / (s))

◆ pw_array_get_unchecked

#define pw_array_get_unchecked (   a,
  idx,
 
)    pw_array_get_unchecked_s(a,idx,sizeof(t),t)

Get the item with index idx and type t from array.

Referenced by pw_properties::pw_properties_iterate().

◆ pw_array_get_unchecked_s

#define pw_array_get_unchecked_s (   a,
  idx,
  s,
 
)    SPA_PTROFF((a)->data,(idx)*(s),t)

◆ PW_ARRAY_INIT

#define PW_ARRAY_INIT (   extend)    (struct pw_array) { NULL, 0, 0, extend }

◆ pw_array_remove

#define pw_array_remove (   a,
 
)
Value:
({ \
(a)->size -= sizeof(*(p)); \
memmove(p, SPA_PTROFF((p), sizeof(*(p)), void), \
})
#define SPA_PTRDIFF(p1, p2)
Definition: defs.h:171
#define pw_array_end(a)
Definition: array.h:69
uint32_t size
Definition: pod/pod.h:51
#define SPA_PTROFF(ptr_, offset_, type_)
Return the address (buffer + offset) as pointer of type.
Definition: defs.h:158

◆ pw_log

#define pw_log (   lev,
  ... 
)
Value:
({ \
pw_log_log(lev,__FILE__,__LINE__,__func__,__VA_ARGS__); \
})
#define pw_log_level_enabled(lev)
Check if a loglevel is enabled.
Definition: src/pipewire/log.h:78
#define SPA_UNLIKELY(x)
Definition: defs.h:232

Referenced by pw_impl_port_update_state().

◆ pw_log_debug

#define pw_log_debug (   ...)    pw_log(SPA_LOG_LEVEL_DEBUG,__VA_ARGS__)

Referenced by pw_buffers_clear(), pw_context_create_client(), pw_context_create_core(), pw_context_create_device(), pw_context_create_factory(), pw_context_create_node(), pw_context_create_port(), pw_context_destroy(), pw_context_find_format(), pw_context_find_port(), pw_context_load_module(), pw_context_load_spa_handle(), pw_context_new(), pw_context_register_export_type(), pw_context_update_properties(), pw_control_add_link(), pw_control_destroy(), pw_control_new(), pw_control_remove_link(), pw_core_disconnect(), pw_core_export(), pw_core_set_paused(), pw_core_steal_fd(), pw_core_update_properties(), pw_data_loop_destroy(), pw_data_loop_stop(), pw_filter_connect(), pw_filter_destroy(), pw_filter_disconnect(), pw_filter_set_active(), pw_filter_update_params(), pw_global_add_resource(), pw_global_destroy(), pw_global_register(), pw_global_update_permissions(), pw_impl_client_destroy(), pw_impl_client_register(), pw_impl_client_set_busy(), pw_impl_client_update_permissions(), pw_impl_core_destroy(), pw_impl_core_update_properties(), pw_impl_device_destroy(), pw_impl_device_set_implementation(), pw_impl_factory_destroy(), pw_impl_factory_update_properties(), pw_impl_link_activate(), pw_impl_link_add_listener(), pw_impl_link_deactivate(), pw_impl_link_destroy(), pw_impl_link_prepare(), pw_impl_module_destroy(), pw_impl_module_update_properties(), pw_impl_node_destroy(), pw_impl_node_get_free_port_id(), pw_impl_node_initialized(), pw_impl_node_register(), pw_impl_node_set_active(), pw_impl_node_set_implementation(), pw_impl_node_set_param(), pw_impl_node_set_state(), pw_impl_port_destroy(), pw_impl_port_recalc_latency(), pw_impl_port_set_mix(), pw_impl_port_set_param(), pw_impl_port_use_buffers(), pw_main_loop_destroy(), pw_main_loop_quit(), pw_main_loop_run(), pw_memblock::pw_memblock_free(), pw_memmap_free(), pw_mempool_clear(), pw_mempool_destroy(), pw_mempool_find_ptr(), pw_mempool_find_tag(), pw_mempool_import_block(), pw_mempool_new(), pw_protocol_add_marshal(), pw_protocol_destroy(), pw_protocol_get_marshal(), pw_protocol_new(), pw_proxy_destroy(), pw_proxy_new(), pw_proxy_remove(), pw_proxy_set_bound_id(), pw_proxy_sync(), pw_proxy_unref(), pw_resource_destroy(), pw_resource_ping(), pw_resource_set_bound_id(), pw_stream_connect(), pw_stream_destroy(), pw_stream_disconnect(), pw_stream_set_active(), pw_stream_set_control(), pw_stream_update_params(), pw_thread_loop_stop(), pw_work_queue_add(), pw_work_queue_cancel(), pw_work_queue_complete(), pw_work_queue_destroy(), and pw_work_queue_new().

◆ pw_log_error

◆ pw_log_info

#define pw_log_info (   ...)    pw_log(SPA_LOG_LEVEL_INFO,__VA_ARGS__)

◆ pw_log_level_enabled

#define pw_log_level_enabled (   lev)    (pw_log_level >= (lev))

Check if a loglevel is enabled.

Referenced by pw_log_log(), and pw_log_logv().

◆ pw_log_trace

◆ pw_log_trace_fp

#define pw_log_trace_fp (   ...)    pw_log(SPA_LOG_LEVEL_TRACE,__VA_ARGS__)

◆ pw_log_warn

Function Documentation

◆ pw_log_get()

struct spa_log* pw_log_get ( void  )

Get the log interface.

Get the log interface.

Returns
the global log

◆ pw_log_log()

void pw_log_log ( enum spa_log_level  level,
const char *  file,
int  line,
const char *  func,
const char *  fmt,
  ... 
)

Log a message.

◆ pw_log_logv()

void void pw_log_logv ( enum spa_log_level  level,
const char *  file,
int  line,
const char *  func,
const char *  fmt,
va_list  args 
)

Log a message.

◆ pw_log_set()

void pw_log_set ( struct spa_log log)

Configure a logging module.

This is usually done automatically in pw_init() but you can install a custom logger before calling pw_init().

Configure a logging module.

Parameters
logthe global log to set

◆ pw_log_set_level()

void pw_log_set_level ( enum spa_log_level  level)

Configure the logging level.

Configure the logging level.

Parameters
levelthe new log level

References spa_log::level, and pw_log_level.

Variable Documentation

◆ pw_log_level

enum spa_log_level pw_log_level

The global log level.

Referenced by pw_log_set_level().