PipeWire  0.3.45
array.h File Reference

pipewire/array.h More...

Go to the source code of this file.

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...
 

Functions

static void pw_array_init (struct pw_array *arr, size_t extend)
 Initialize the array with given extend. More...
 
static void pw_array_clear (struct pw_array *arr)
 Clear the array. More...
 
static void pw_array_reset (struct pw_array *arr)
 Reset the array. More...
 
static int pw_array_ensure_size (struct pw_array *arr, size_t size)
 Make sure size bytes can be added to the array. More...
 
static void * pw_array_add (struct pw_array *arr, size_t size)
 Add ref size bytes to arr. More...
 
static void * pw_array_add_fixed (struct pw_array *arr, size_t size)
 Add ref size bytes to arr. More...
 

Detailed Description