PipeWire  0.3.33
pod/pod.h File Reference

Go to the source code of this file.

Data Structures

struct  spa_pod
 
struct  spa_pod_bool
 
struct  spa_pod_id
 
struct  spa_pod_int
 
struct  spa_pod_long
 
struct  spa_pod_float
 
struct  spa_pod_double
 
struct  spa_pod_string
 
struct  spa_pod_bytes
 
struct  spa_pod_rectangle
 
struct  spa_pod_fraction
 
struct  spa_pod_bitmap
 
struct  spa_pod_array_body
 
struct  spa_pod_array
 
struct  spa_pod_choice_body
 
struct  spa_pod_choice
 
struct  spa_pod_struct
 
struct  spa_pod_object_body
 
struct  spa_pod_object
 
struct  spa_pod_pointer_body
 
struct  spa_pod_pointer
 
struct  spa_pod_fd
 
struct  spa_pod_prop
 
struct  spa_pod_control
 
struct  spa_pod_sequence_body
 
struct  spa_pod_sequence
 a sequence of timed controls More...
 

Macros

#define SPA_POD_BODY_SIZE(pod)   (((struct spa_pod*)(pod))->size)
 
#define SPA_POD_TYPE(pod)   (((struct spa_pod*)(pod))->type)
 
#define SPA_POD_SIZE(pod)   (sizeof(struct spa_pod) + SPA_POD_BODY_SIZE(pod))
 
#define SPA_POD_CONTENTS_SIZE(type, pod)   (SPA_POD_SIZE(pod)-sizeof(type))
 
#define SPA_POD_CONTENTS(type, pod)   SPA_PTROFF((pod),sizeof(type),void)
 
#define SPA_POD_CONTENTS_CONST(type, pod)   SPA_PTROFF((pod),sizeof(type),const void)
 
#define SPA_POD_BODY(pod)   SPA_PTROFF((pod),sizeof(struct spa_pod),void)
 
#define SPA_POD_BODY_CONST(pod)   SPA_PTROFF((pod),sizeof(struct spa_pod),const void)
 
#define SPA_POD_VALUE(type, pod)   (((type*)pod)->value)
 
#define SPA_POD_ARRAY_CHILD(arr)   (&((struct spa_pod_array*)(arr))->body.child)
 
#define SPA_POD_ARRAY_VALUE_TYPE(arr)   (SPA_POD_TYPE(SPA_POD_ARRAY_CHILD(arr)))
 
#define SPA_POD_ARRAY_VALUE_SIZE(arr)   (SPA_POD_BODY_SIZE(SPA_POD_ARRAY_CHILD(arr)))
 
#define SPA_POD_ARRAY_N_VALUES(arr)   (SPA_POD_ARRAY_VALUE_SIZE(arr) ? ((SPA_POD_BODY_SIZE(arr) - sizeof(struct spa_pod_array_body)) / SPA_POD_ARRAY_VALUE_SIZE(arr)) : 0)
 
#define SPA_POD_ARRAY_VALUES(arr)   SPA_POD_CONTENTS(struct spa_pod_array, arr)
 
#define SPA_POD_CHOICE_CHILD(choice)   (&((struct spa_pod_choice*)(choice))->body.child)
 
#define SPA_POD_CHOICE_TYPE(choice)   (((struct spa_pod_choice*)(choice))->body.type)
 
#define SPA_POD_CHOICE_FLAGS(choice)   (((struct spa_pod_choice*)(choice))->body.flags)
 
#define SPA_POD_CHOICE_VALUE_TYPE(choice)   (SPA_POD_TYPE(SPA_POD_CHOICE_CHILD(choice)))
 
#define SPA_POD_CHOICE_VALUE_SIZE(choice)   (SPA_POD_BODY_SIZE(SPA_POD_CHOICE_CHILD(choice)))
 
#define SPA_POD_CHOICE_N_VALUES(choice)   (SPA_POD_CHOICE_VALUE_SIZE(choice) ? ((SPA_POD_BODY_SIZE(choice) - sizeof(struct spa_pod_choice_body)) / SPA_POD_CHOICE_VALUE_SIZE(choice)) : 0)
 
#define SPA_POD_CHOICE_VALUES(choice)   (SPA_POD_CONTENTS(struct spa_pod_choice, choice))
 
#define SPA_POD_OBJECT_TYPE(obj)   (((struct spa_pod_object*)(obj))->body.type)
 
#define SPA_POD_OBJECT_ID(obj)   (((struct spa_pod_object*)(obj))->body.id)
 
#define SPA_POD_PROP_SIZE(prop)   (sizeof(struct spa_pod_prop) + (prop)->value.size)
 
#define SPA_POD_PROP_FLAG_READONLY   (1u<<0)
 is read-only More...
 
#define SPA_POD_PROP_FLAG_HARDWARE   (1u<<1)
 some sort of hardware parameter More...
 
#define SPA_POD_PROP_FLAG_HINT_DICT   (1u<<2)
 contains a dictionary struct as (Struct( Int : n_items, (String : key, String : value)*)) More...
 
#define SPA_POD_PROP_FLAG_MANDATORY   (1u<<3)
 is mandatory More...
 
#define SPA_POD_PROP_FLAG_DONT_FIXATE   (1u<<4)
 choices need no fixation More...
 
#define SPA_POD_CONTROL_SIZE(ev)   (sizeof(struct spa_pod_control) + (ev)->value.size)
 

Enumerations

enum  spa_choice_type {
  SPA_CHOICE_None, SPA_CHOICE_Range, SPA_CHOICE_Step, SPA_CHOICE_Enum,
  SPA_CHOICE_Flags
}
 

Macro Definition Documentation

◆ SPA_POD_PROP_FLAG_DONT_FIXATE

#define SPA_POD_PROP_FLAG_DONT_FIXATE   (1u<<4)

choices need no fixation

◆ SPA_POD_PROP_FLAG_HARDWARE

#define SPA_POD_PROP_FLAG_HARDWARE   (1u<<1)

some sort of hardware parameter

◆ SPA_POD_PROP_FLAG_HINT_DICT

#define SPA_POD_PROP_FLAG_HINT_DICT   (1u<<2)

contains a dictionary struct as (Struct( Int : n_items, (String : key, String : value)*))

◆ SPA_POD_PROP_FLAG_MANDATORY

#define SPA_POD_PROP_FLAG_MANDATORY   (1u<<3)

is mandatory

◆ SPA_POD_PROP_FLAG_READONLY

#define SPA_POD_PROP_FLAG_READONLY   (1u<<0)

is read-only