# Spa Pod (Plain Old Data)

struct WpSpaPod

struct WpSpaPodBuilder

struct WpSpaPodParser

WpSpaPod *wp_spa_pod_ref(WpSpaPod *self)

  Increases the reference count of a spa pod object.

  Parameters:

    - self -- a spa pod object

  Returns:

    (transfer full): self with an additional reference count on it

void wp_spa_pod_unref(WpSpaPod *self)

  Decreases the reference count on self and frees it when the ref count reaches zero.

  Parameters:

    - self -- (transfer full): a spa pod object

WpSpaPod *wp_spa_pod_new_wrap(struct spa_pod *pod)

  Constructs a new WpSpaPod that wraps the given `spa_pod`.

  Parameters:

    - pod -- a spa_pod

  Returns:

    a new WpSpaPod that references the data in pod. pod is not copied, so it needs to stay alive. The returned WpSpaPod can be modified by using the setter functions, in which case pod will be modified underneath.

WpSpaPod *wp_spa_pod_new_wrap_const(const struct spa_pod *pod)

  Constructs a new immutable WpSpaPod that wraps the given `spa_pod`.

  Parameters:

    - pod -- a constant spa_pod

  Returns:

    a new WpSpaPod that references the data in pod. pod is not copied, so it needs to stay alive. The returned WpSpaPod cannot be modified, unless it's copied first.

const struct spa_pod *wp_spa_pod_get_spa_pod(const WpSpaPod *self)

  Converts a WpSpaPod pointer to a `struct spa_pod` one, for use with native pipewire & spa functions. The returned pointer is owned by WpSpaPod and may not be modified or freed.

  Parameters:

    - self -- a spa pod object

  Returns:

    a const pointer to the underlying spa_pod structure

WpSpaType wp_spa_pod_get_spa_type(WpSpaPod *self)

  Gets the SPA type of the spa pod.

  If the pod is an object or pointer, this will return the derived object/pointer type directly. If the pod is an object property or a control, this will return the type of the contained value.

  Parameters:

    - self -- a spa pod

  Returns:

    (transfer none): the type of the spa pod

WpSpaIdValue wp_spa_pod_get_choice_type(WpSpaPod *self)

  If the pod is a Choice, this gets the choice type (Range, Step, Enum, ...).

  Parameters:

    - self -- a choice pod

  Returns:

    the choice type of the choice pod

WpSpaPod *wp_spa_pod_copy(WpSpaPod *other)

  Copies a spa pod object.

  Parameters:

    - other -- a spa pod object

  Returns:

    (transfer full): The newly copied spa pod

gboolean wp_spa_pod_is_unique_owner(WpSpaPod *self)

  Checks if the pod is the unique owner of its data or not.

  Parameters:

    - self -- a spa pod object

  Returns:

    TRUE if the pod owns the data, FALSE otherwise.

WpSpaPod *wp_spa_pod_ensure_unique_owner(WpSpaPod *self)

  If self is not uniquely owned already, then it is unrefed and a copy of it is returned instead. You should always consider self as unsafe to use after this call and you should use the returned object instead.

  Parameters:

    - self -- (transfer full): a spa pod object

  Returns:

    (transfer full): the uniquely owned spa pod object which may or may not be the same as self.

WpSpaPod *wp_spa_pod_new_none(void)

  Creates a spa pod of type None.

  Returns:

    (transfer full): The new spa pod

WpSpaPod *wp_spa_pod_new_boolean(gboolean value)

  Creates a spa pod of type boolean.

  Parameters:

    - value -- the boolean value

  Returns:

    (transfer full): The new spa pod

WpSpaPod *wp_spa_pod_new_id(guint32 value)

  Creates a spa pod of type Id.

  Parameters:

    - value -- the Id value

  Returns:

    (transfer full): The new spa pod

WpSpaPod *wp_spa_pod_new_int(gint32 value)

  Creates a spa pod of type int.

  Parameters:

    - value -- the int value

  Returns:

    (transfer full): The new spa pod

WpSpaPod *wp_spa_pod_new_long(gint64 value)

  Creates a spa pod of type long.

  Parameters:

    - value -- the long value

  Returns:

    (transfer full): The new spa pod

WpSpaPod *wp_spa_pod_new_float(float value)

  Creates a spa pod of type float.

  Parameters:

    - value -- the float value

  Returns:

    (transfer full): The new spa pod

WpSpaPod *wp_spa_pod_new_double(double value)

  Creates a spa pod of type double.

  Parameters:

    - value -- the double value

  Returns:

    (transfer full): The new spa pod

WpSpaPod *wp_spa_pod_new_string(const char *value)

  Creates a spa pod of type string.

  Parameters:

    - value -- the string value

  Returns:

    (transfer full): The new spa pod

WpSpaPod *wp_spa_pod_new_bytes(gconstpointer value, guint32 len)

  Creates a spa pod of type bytes.

  Parameters:

    - value -- the bytes value

    - len -- the length of the bytes value

  Returns:

    (transfer full): The new spa pod

WpSpaPod *wp_spa_pod_new_pointer(const char *type_name, gconstpointer value)

  Creates a spa pod of type pointer.

  Parameters:

    - type_name -- the name of the type of the pointer

    - value -- the pointer value

  Returns:

    (transfer full): The new spa pod

WpSpaPod *wp_spa_pod_new_fd(gint64 value)

  Creates a spa pod of type Fd.

  Parameters:

    - value -- the Fd value

  Returns:

    (transfer full): The new spa pod

WpSpaPod *wp_spa_pod_new_rectangle(guint32 width, guint32 height)

  Creates a spa pod of type rectangle.

  Parameters:

    - width -- the width value of the rectangle

    - height -- the height value of the rectangle

  Returns:

    (transfer full): The new spa pod

WpSpaPod *wp_spa_pod_new_fraction(guint32 num, guint32 denom)

  Creates a spa pod of type fraction.

  Parameters:

    - num -- the numerator value of the fraction

    - denom -- the denominator value of the fraction

  Returns:

    (transfer full): The new spa pod

WpSpaPod *wp_spa_pod_new_choice(const char *choice_type, ...)

  Creates a spa pod of type choice.

  Parameters:

    - choice_type -- the name of the choice type ("Range", "Step", ...),

    - ... -- a list of choice values, followed by NULL

  Returns:

    (transfer full): The new spa pod

WpSpaPod *wp_spa_pod_new_choice_valist(const char *choice_type, va_list args)

  This is the `va_list` version of wp_spa_pod_new_choice().

  Parameters:

    - choice_type -- the name of the choice type ("Range", "Step", ...)

    - args -- the variable arguments passed to wp_spa_pod_new_choice()

  Returns:

    (transfer full): The new spa pod

WpSpaPod *wp_spa_pod_new_object(const char *type_name, const char *id_name, ...)

  Creates a spa pod of type object.

  Parameters:

    - type_name -- the type name of the object type

    - id_name -- the id name of the object,

    - ... -- a list of object properties with their values, followed by NULL

  Returns:

    (transfer full): The new spa pod

WpSpaPod *wp_spa_pod_new_object_valist(const char *type_name, const char *id_name, va_list args)

  This is the `va_list` version of wp_spa_pod_new_object().

  Parameters:

    - type_name -- the type name of the object type

    - id_name -- the id name of the object

    - args -- the variable arguments passed to wp_spa_pod_new_object()

  Returns:

    (transfer full): The new spa pod

WpSpaPod *wp_spa_pod_new_sequence(guint unit, ...)

  Creates a spa pod of type sequence.

  Parameters:

    - unit -- the unit of the sequence

    - ... -- a list of sequence controls with their values, followed by NULL

  Returns:

    (transfer full): The new spa pod

WpSpaPod *wp_spa_pod_new_sequence_valist(guint unit, va_list args)

  This is the `va_list` version of wp_spa_pod_new_sequence().

  Parameters:

    - unit -- the unit of the sequence

    - args -- the variable arguments passed to wp_spa_pod_new_sequence()

  Returns:

    (transfer full): The new spa pod

gboolean wp_spa_pod_is_none(WpSpaPod *self)

  Checks whether the spa pod is of type none or not.

  Parameters:

    - self -- the spa pod object

  Returns:

    TRUE if it is of type none, FALSE otherwise

gboolean wp_spa_pod_is_boolean(WpSpaPod *self)

  Checks whether the spa pod is of type boolean or not.

  Parameters:

    - self -- the spa pod object

  Returns:

    TRUE if it is of type boolean, FALSE otherwise

gboolean wp_spa_pod_is_id(WpSpaPod *self)

  Checks whether the spa pod is of type Id or not.

  Parameters:

    - self -- the spa pod object

  Returns:

    TRUE if it is of type Id, FALSE otherwise

gboolean wp_spa_pod_is_int(WpSpaPod *self)

  Checks whether the spa pod is of type int or not.

  Parameters:

    - self -- the spa pod object

  Returns:

    TRUE if it is of type int, FALSE otherwise

gboolean wp_spa_pod_is_long(WpSpaPod *self)

  Checks whether the spa pod is of type long or not.

  Parameters:

    - self -- the spa pod object

  Returns:

    TRUE if it is of type long, FALSE otherwise

gboolean wp_spa_pod_is_float(WpSpaPod *self)

  Checks whether the spa pod is of type float or not.

  Parameters:

    - self -- the spa pod object

  Returns:

    TRUE if it is of type float, FALSE otherwise

gboolean wp_spa_pod_is_double(WpSpaPod *self)

  Checks whether the spa pod is of type double or not.

  Parameters:

    - self -- the spa pod object

  Returns:

    TRUE if it is of type double, FALSE otherwise

gboolean wp_spa_pod_is_string(WpSpaPod *self)

  Checks whether the spa pod is of type string or not.

  Parameters:

    - self -- the spa pod object

  Returns:

    TRUE if it is of type string, FALSE otherwise

gboolean wp_spa_pod_is_bytes(WpSpaPod *self)

  Checks whether the spa pod is of type bytes or not.

  Parameters:

    - self -- the spa pod object

  Returns:

    TRUE if it is of type bytes, FALSE otherwise

gboolean wp_spa_pod_is_pointer(WpSpaPod *self)

  Checks whether the spa pod is of type pointer or not.

  Parameters:

    - self -- the spa pod object

  Returns:

    TRUE if it is of type pointer, FALSE otherwise

gboolean wp_spa_pod_is_fd(WpSpaPod *self)

  Checks whether the spa pod is of type Fd or not.

  Parameters:

    - self -- the spa pod object

  Returns:

    TRUE if it is of type Fd, FALSE otherwise

gboolean wp_spa_pod_is_rectangle(WpSpaPod *self)

  Checks whether the spa pod is of type rectangle or not.

  Parameters:

    - self -- the spa pod object

  Returns:

    TRUE if it is of type rectangle, FALSE otherwise

gboolean wp_spa_pod_is_fraction(WpSpaPod *self)

  Checks whether the spa pod is of type fraction or not.

  Parameters:

    - self -- the spa pod object

  Returns:

    TRUE if it is of type fraction, FALSE otherwise

gboolean wp_spa_pod_is_array(WpSpaPod *self)

  Checks whether the spa pod is of type array or not.

  Parameters:

    - self -- the spa pod object

  Returns:

    TRUE if it is of type array, FALSE otherwise

gboolean wp_spa_pod_is_choice(WpSpaPod *self)

  Checks whether the spa pod is of type choice or not.

  Parameters:

    - self -- the spa pod object

  Returns:

    TRUE if it is of type choice, FALSE otherwise

gboolean wp_spa_pod_is_object(WpSpaPod *self)

  Checks whether the spa pod is of type object or not.

  Parameters:

    - self -- the spa pod object

  Returns:

    TRUE if it is of type object, FALSE otherwise

gboolean wp_spa_pod_is_struct(WpSpaPod *self)

  Checks whether the spa pod is of type struct or not.

  Parameters:

    - self -- the spa pod object

  Returns:

    TRUE if it is of type struct, FALSE otherwise

gboolean wp_spa_pod_is_sequence(WpSpaPod *self)

  Checks whether the spa pod is of type sequence or not.

  Parameters:

    - self -- the spa pod object

  Returns:

    TRUE if it is of type sequence, FALSE otherwise

gboolean wp_spa_pod_is_property(WpSpaPod *self)

  Checks whether the spa pod is of type property or not.

  Parameters:

    - self -- the spa pod object

  Returns:

    TRUE if it is of type property, FALSE otherwise

gboolean wp_spa_pod_is_control(WpSpaPod *self)

  Checks whether the spa pod is of type control or not.

  Parameters:

    - self -- the spa pod object

  Returns:

    TRUE if it is of type control, FALSE otherwise

gboolean wp_spa_pod_get_boolean(WpSpaPod *self, gboolean *value)

  Gets the boolean value of a spa pod object.

  Parameters:

    - self -- the spa pod object

    - value -- (out): the boolean value

  Returns:

    TRUE if the value was obtained, FALSE otherwise

gboolean wp_spa_pod_get_id(WpSpaPod *self, guint32 *value)

  Gets the Id value of a spa pod object.

  Parameters:

    - self -- the spa pod object

    - value -- (out): the Id value

  Returns:

    TRUE if the value was obtained, FALSE otherwise

gboolean wp_spa_pod_get_int(WpSpaPod *self, gint32 *value)

  Gets the int value of a spa pod object.

  Parameters:

    - self -- the spa pod object

    - value -- (out): the int value

  Returns:

    TRUE if the value was obtained, FALSE otherwise

gboolean wp_spa_pod_get_long(WpSpaPod *self, gint64 *value)

  Gets the long value of a spa pod object.

  Parameters:

    - self -- the spa pod object

    - value -- (out): the long value

  Returns:

    TRUE if the value was obtained, FALSE otherwise

gboolean wp_spa_pod_get_float(WpSpaPod *self, float *value)

  Gets the float value of a spa pod object.

  Parameters:

    - self -- the spa pod object

    - value -- (out): the float value

  Returns:

    TRUE if the value was obtained, FALSE otherwise

gboolean wp_spa_pod_get_double(WpSpaPod *self, double *value)

  Gets the double value of a spa pod object.

  Parameters:

    - self -- the spa pod object

    - value -- (out): the double value

  Returns:

    TRUE if the value was obtained, FALSE otherwise

gboolean wp_spa_pod_get_string(WpSpaPod *self, const char **value)

  Gets the string value of a spa pod object.

  Parameters:

    - self -- the spa pod object

    - value -- (out) (transfer none): the string value

  Returns:

    TRUE if the value was obtained, FALSE otherwise

gboolean wp_spa_pod_get_bytes(WpSpaPod *self, gconstpointer *value, guint32 *len)

  Gets the bytes value and its len of a spa pod object.

  Parameters:

    - self -- the spa pod object

    - value -- (out): the bytes value

    - len -- (out): the length of the bytes value

  Returns:

    TRUE if the value was obtained, FALSE otherwise

gboolean wp_spa_pod_get_pointer(WpSpaPod *self, gconstpointer *value)

  Gets the pointer value and its type name of a spa pod object.

  Parameters:

    - self -- the spa pod object

    - value -- (out): the pointer value

  Returns:

    TRUE if the value was obtained, FALSE otherwise

gboolean wp_spa_pod_get_fd(WpSpaPod *self, gint64 *value)

  Gets the Fd value of a spa pod object.

  Parameters:

    - self -- the spa pod object

    - value -- (out): the Fd value

  Returns:

    TRUE if the value was obtained, FALSE otherwise

gboolean wp_spa_pod_get_rectangle(WpSpaPod *self, guint32 *width, guint32 *height)

  Gets the rectangle's width and height value of a spa pod object.

  Parameters:

    - self -- the spa pod object

    - width -- (out): the rectangle's width value

    - height -- (out): the rectangle's height value

  Returns:

    TRUE if the value was obtained, FALSE otherwise

gboolean wp_spa_pod_get_fraction(WpSpaPod *self, guint32 *num, guint32 *denom)

  Gets the fractions's numerator and denominator value of a spa pod object.

  Parameters:

    - self -- the spa pod object

    - num -- (out): the fractions's numerator value

    - denom -- (out): the fractions's denominator value

  Returns:

    TRUE if the value was obtained, FALSE otherwise

gboolean wp_spa_pod_set_boolean(WpSpaPod *self, gboolean value)

  Sets a boolean value in the spa pod object.

  Parameters:

    - self -- the spa pod object

    - value -- the boolean value

  Returns:

    TRUE if the value could be set, FALSE otherwise.

gboolean wp_spa_pod_set_id(WpSpaPod *self, guint32 value)

  Sets an Id value in the spa pod object.

  Parameters:

    - self -- the spa pod object

    - value -- the Id value

  Returns:

    TRUE if the value could be set, FALSE otherwise.

gboolean wp_spa_pod_set_int(WpSpaPod *self, gint32 value)

  Sets an int value in the spa pod object.

  Parameters:

    - self -- the spa pod object

    - value -- the int value

  Returns:

    TRUE if the value could be set, FALSE otherwise.

gboolean wp_spa_pod_set_long(WpSpaPod *self, gint64 value)

  Sets a long value in the spa pod object.

  Parameters:

    - self -- the spa pod object

    - value -- the long value

  Returns:

    TRUE if the value could be set, FALSE otherwise.

gboolean wp_spa_pod_set_float(WpSpaPod *self, float value)

  Sets a float value in the spa pod object.

  Parameters:

    - self -- the spa pod object

    - value -- the float value

  Returns:

    TRUE if the value could be set, FALSE otherwise.

gboolean wp_spa_pod_set_double(WpSpaPod *self, double value)

  Sets a double value in the spa pod object.

  Parameters:

    - self -- the spa pod object

    - value -- the double value

  Returns:

    TRUE if the value could be set, FALSE otherwise.

gboolean wp_spa_pod_set_pointer(WpSpaPod *self, const char *type_name, gconstpointer value)

  Sets a pointer value with its type name in the spa pod object.

  Parameters:

    - self -- the spa pod object

    - type_name -- the name of the type of the pointer

    - value -- the pointer value

  Returns:

    TRUE if the value could be set, FALSE otherwise.

gboolean wp_spa_pod_set_fd(WpSpaPod *self, gint64 value)

  Sets a Fd value in the spa pod object.

  Parameters:

    - self -- the spa pod object

    - value -- the Fd value

  Returns:

    TRUE if the value could be set, FALSE otherwise.

gboolean wp_spa_pod_set_rectangle(WpSpaPod *self, guint32 width, guint32 height)

  Sets the width and height values of a rectangle in the spa pod object.

  Parameters:

    - self -- the spa pod object

    - width -- the width value of the rectangle

    - height -- the height value of the rectangle

  Returns:

    TRUE if the value could be set, FALSE otherwise.

gboolean wp_spa_pod_set_fraction(WpSpaPod *self, guint32 num, guint32 denom)

  Sets the numerator and denominator values of a fraction in the spa pod object.

  Parameters:

    - self -- the spa pod object

    - num -- the numerator value of the fraction

    - denom -- the denominator value of the fraction

  Returns:

    TRUE if the value could be set, FALSE otherwise.

gboolean wp_spa_pod_set_pod(WpSpaPod *self, WpSpaPod *pod)

  Sets the value of a spa pod object in the current spa pod object. The spa pod objects must be of the same value.

  Parameters:

    - self -- the spa pod object

    - pod -- the pod with the value to be set

  Returns:

    TRUE if the value could be set, FALSE otherwise.

gboolean wp_spa_pod_equal(WpSpaPod *self, WpSpaPod *pod)

  Checks whether two spa pod objects have the same value or not.

  Parameters:

    - self -- the spa pod object

    - pod -- the pod with the value to be compared with

  Returns:

    TRUE if both spa pod objects have the same values, FALSE otherwise.

gboolean wp_spa_pod_get_object(WpSpaPod *self, const char **id_name, ...)

  Gets the object properties values of a spa pod object.

  Parameters:

    - self -- the spa pod object

    - id_name -- (out): the id name of the object,

    - ... -- (out): the list of the object properties values, followed by NULL

  Returns:

    TRUE if the object properties values were obtained, FALSE otherwise

gboolean wp_spa_pod_get_object_valist(WpSpaPod *self, const char **id_name, va_list args)

  This is the `va_list` version of wp_spa_pod_get_object().

  Parameters:

    - self -- the spa pod object

    - id_name -- (out): the id name of the object

    - args -- (out): the variable arguments passed to wp_spa_pod_get_object()

  Returns:

    TRUE if the object properties values were obtained, FALSE otherwise

gboolean wp_spa_pod_get_struct(WpSpaPod *self, ...)

  Gets the struct's values of a spa pod object.

  Parameters:

    - self -- the spa pod object

    - ... -- (out): the list of the struct values, followed by NULL

  Returns:

    TRUE if the struct values were obtained, FALSE otherwise

gboolean wp_spa_pod_get_struct_valist(WpSpaPod *self, va_list args)

  This is the `va_list` version of wp_spa_pod_get_struct().

  Parameters:

    - self -- the spa pod object

    - args -- (out): the variable arguments passed to wp_spa_pod_get_struct()

  Returns:

    TRUE if the struct values were obtained, FALSE otherwise

gboolean wp_spa_pod_get_property(WpSpaPod *self, const char **key, WpSpaPod **value)

  Gets the name, flags and spa pod value of a spa pod property.

  Parameters:

    - self -- the spa pod object

    - key -- (out) (optional) (transfer none): the name of the property

    - value -- (out) (optional): the spa pod value of the property

  Returns:

    TRUE if the value was obtained, FALSE otherwise

gboolean wp_spa_pod_get_control(WpSpaPod *self, guint32 *offset, const char **ctl_type, WpSpaPod **value)

  Gets the offset, type name and spa pod value of a spa pod control.

  Parameters:

    - self -- the spa pod object

    - offset -- (out) (optional): the offset of the control

    - ctl_type -- (out) (optional) (transfer none): the control type (Properties, Midi, ...)

    - value -- (out) (optional): the spa pod value of the control

  Returns:

    TRUE if the value was obtained, FALSE otherwise

WpSpaPod *wp_spa_pod_get_choice_child(WpSpaPod *self)

  Gets the child of a spa pod choice object.

  Parameters:

    - self -- a spa pod choice object

  Returns:

    (transfer full): the child of the spa pod choice object

WpSpaPod *wp_spa_pod_get_array_child(WpSpaPod *self)

  Gets the child of a spa pod array object.

  Parameters:

    - self -- a spa pod choice object

  Returns:

    (transfer full): the child of the spa pod array object

gboolean wp_spa_pod_fixate(WpSpaPod *self)

  Fixates choices in an object pod so that they only have one value.

  Parameters:

    - self -- a spa pod

  Returns:

    TRUE if the pod was an object and it went through the fixation procedure, FALSE otherwise

WpSpaPodBuilder *wp_spa_pod_builder_ref(WpSpaPodBuilder *self)

  Increases the reference count of a spa pod builder.

  Parameters:

    - self -- a spa pod builder object

  Returns:

    (transfer full): self with an additional reference count on it

void wp_spa_pod_builder_unref(WpSpaPodBuilder *self)

  Decreases the reference count on self and frees it when the ref count reaches zero.

  Parameters:

    - self -- (transfer full): a spa pod builder object

WpSpaPodBuilder *wp_spa_pod_builder_new_array(void)

  Creates a spa pod builder of type array.

  Returns:

    (transfer full): the new spa pod builder

WpSpaPodBuilder *wp_spa_pod_builder_new_choice(const char *choice_type)

  Creates a spa pod builder of type choice.

  Parameters:

    - choice_type -- the name of the choice type ("Range", "Step", ...)

  Returns:

    (transfer full): the new spa pod builder

WpSpaPodBuilder *wp_spa_pod_builder_new_object(const char *type_name, const char *id_name)

  Creates a spa pod builder of type object.

  Parameters:

    - type_name -- the type name of the object type

    - id_name -- the Id name of the object

  Returns:

    (transfer full): the new spa pod builder

WpSpaPodBuilder *wp_spa_pod_builder_new_struct(void)

  Creates a spa pod builder of type struct.

  Returns:

    (transfer full): the new spa pod builder

WpSpaPodBuilder *wp_spa_pod_builder_new_sequence(guint unit)

  Creates a spa pod builder of type sequence.

  Returns:

    (transfer full): the new spa pod builder

void wp_spa_pod_builder_add_none(WpSpaPodBuilder *self)

  Adds a none value into the builder.

  Parameters:

    - self -- the spa pod builder object

void wp_spa_pod_builder_add_boolean(WpSpaPodBuilder *self, gboolean value)

  Adds a boolean value into the builder.

  Parameters:

    - self -- the spa pod builder object

    - value -- the boolean value

void wp_spa_pod_builder_add_id(WpSpaPodBuilder *self, guint32 value)

  Adds a Id value into the builder.

  Parameters:

    - self -- the spa pod builder object

    - value -- the Id value

void wp_spa_pod_builder_add_int(WpSpaPodBuilder *self, gint32 value)

  Adds a int value into the builder.

  Parameters:

    - self -- the spa pod builder object

    - value -- the int value

void wp_spa_pod_builder_add_long(WpSpaPodBuilder *self, gint64 value)

  Adds a long value into the builder.

  Parameters:

    - self -- the spa pod builder object

    - value -- the long value

void wp_spa_pod_builder_add_float(WpSpaPodBuilder *self, float value)

  Adds a float value into the builder.

  Parameters:

    - self -- the spa pod builder object

    - value -- the float value

void wp_spa_pod_builder_add_double(WpSpaPodBuilder *self, double value)

  Adds a double value into the builder.

  Parameters:

    - self -- the spa pod builder object

    - value -- the double value

void wp_spa_pod_builder_add_string(WpSpaPodBuilder *self, const char *value)

  Adds a string value into the builder.

  Parameters:

    - self -- the spa pod builder object

    - value -- the string value

void wp_spa_pod_builder_add_bytes(WpSpaPodBuilder *self, gconstpointer value, guint32 len)

  Adds a bytes value with its length into the builder.

  Parameters:

    - self -- the spa pod builder object

    - value -- the bytes value

    - len -- the length of the bytes value

void wp_spa_pod_builder_add_pointer(WpSpaPodBuilder *self, const char *type_name, gconstpointer value)

  Adds a pointer value with its type name into the builder.

  Parameters:

    - self -- the spa pod builder object

    - type_name -- the type name that the pointer points to

    - value -- the pointer value

void wp_spa_pod_builder_add_fd(WpSpaPodBuilder *self, gint64 value)

  Adds a Fd value into the builder.

  Parameters:

    - self -- the spa pod builder object

    - value -- the Fd value

void wp_spa_pod_builder_add_rectangle(WpSpaPodBuilder *self, guint32 width, guint32 height)

  Adds the width and height values of a rectangle into the builder.

  Parameters:

    - self -- the spa pod builder object

    - width -- the width value of the rectangle

    - height -- the height value of the rectangle

void wp_spa_pod_builder_add_fraction(WpSpaPodBuilder *self, guint32 num, guint32 denom)

  Adds the numerator and denominator values of a fraction into the builder.

  Parameters:

    - self -- the spa pod builder object

    - num -- the numerator value of the fraction

    - denom -- the denominator value of the fraction

void wp_spa_pod_builder_add_pod(WpSpaPodBuilder *self, WpSpaPod *pod)

  Adds a pod value into the builder.

  Parameters:

    - self -- the spa pod builder object

    - pod -- the pod value

void wp_spa_pod_builder_add_property(WpSpaPodBuilder *self, const char *key)

  Adds a property into the builder.

  Parameters:

    - self -- the spa pod builder object

    - key -- the name of the property

void wp_spa_pod_builder_add_property_id(WpSpaPodBuilder *self, guint32 id)

  Adds a property into the builder.

  Parameters:

    - self -- the spa pod builder object

    - id -- the id of the property

void wp_spa_pod_builder_add_control(WpSpaPodBuilder *self, guint32 offset, const char *ctl_type)

  Adds a control into the builder.

  Parameters:

    - self -- the spa pod builder object

    - offset -- the offset of the control

    - ctl_type -- the type name of the control

void wp_spa_pod_builder_add(WpSpaPodBuilder *self, ...)

  Adds a list of values into the builder.

  Parameters:

    - self -- the spa pod builder object

    - ... -- a list of additional values, followed by NULL

void wp_spa_pod_builder_add_valist(WpSpaPodBuilder *self, va_list args)

  Adds a list of values into the builder.

  Parameters:

    - self -- the spa pod builder object

    - args -- the variable arguments passed to wp_spa_pod_builder_add()

WpSpaPod *wp_spa_pod_builder_end(WpSpaPodBuilder *self)

  Ends the builder process and returns the constructed spa pod object.

  Parameters:

    - self -- the spa pod builder object

  Returns:

    (transfer full): the constructed spa pod object

WpSpaPodParser *wp_spa_pod_parser_ref(WpSpaPodParser *self)

  Increases the reference count of a spa pod parser.

  Parameters:

    - self -- a spa pod sparser object

  Returns:

    (transfer full): self with an additional reference count on it

void wp_spa_pod_parser_unref(WpSpaPodParser *self)

  Decreases the reference count on self and frees it when the ref count reaches zero.

  Parameters:

    - self -- (transfer full): a spa pod parser object

WpSpaPodParser *wp_spa_pod_parser_new_object(WpSpaPod *pod, const char **id_name)

  Creates an object spa pod parser. The pod object must be valid for the entire life-cycle of the returned parser.

  Parameters:

    - pod -- the object spa pod to parse

    - id_name -- the Id name of the object

  Returns:

    (transfer full): The new spa pod parser

WpSpaPodParser *wp_spa_pod_parser_new_struct(WpSpaPod *pod)

  Creates an struct spa pod parser. The pod object must be valid for the entire life-cycle of the returned parser.

  Parameters:

    - pod -- the struct spa pod to parse

  Returns:

    (transfer full): The new spa pod parser

gboolean wp_spa_pod_parser_get_boolean(WpSpaPodParser *self, gboolean *value)

  Gets the boolean value from a spa pod parser.

  Parameters:

    - self -- the spa pod parser object

    - value -- (out): the boolean value

  Returns:

    TRUE if the value was obtained, FALSE otherwise

gboolean wp_spa_pod_parser_get_id(WpSpaPodParser *self, guint32 *value)

  Gets the Id value from a spa pod parser object.

  Parameters:

    - self -- the spa pod parser object

    - value -- (out): the Id value

  Returns:

    TRUE if the value was obtained, FALSE otherwise

gboolean wp_spa_pod_parser_get_int(WpSpaPodParser *self, gint32 *value)

  Gets the int value from a spa pod parser object.

  Parameters:

    - self -- the spa pod parser object

    - value -- (out): the int value

  Returns:

    TRUE if the value was obtained, FALSE otherwise

gboolean wp_spa_pod_parser_get_long(WpSpaPodParser *self, gint64 *value)

  Gets the long value from a spa pod parser object.

  Parameters:

    - self -- the spa pod parser object

    - value -- (out): the long value

  Returns:

    TRUE if the value was obtained, FALSE otherwise

gboolean wp_spa_pod_parser_get_float(WpSpaPodParser *self, float *value)

  Gets the float value from a spa pod parser object.

  Parameters:

    - self -- the spa pod parser object

    - value -- (out): the float value

  Returns:

    TRUE if the value was obtained, FALSE otherwise

gboolean wp_spa_pod_parser_get_double(WpSpaPodParser *self, double *value)

  Gets the double value from a spa pod parser object.

  Parameters:

    - self -- the spa pod parser object

    - value -- (out): the double value

  Returns:

    TRUE if the value was obtained, FALSE otherwise

gboolean wp_spa_pod_parser_get_string(WpSpaPodParser *self, const char **value)

  Gets the string value from a spa pod parser object.

  Parameters:

    - self -- the spa pod parser object

    - value -- (out) (transfer none): the string value

  Returns:

    TRUE if the value was obtained, FALSE otherwise

gboolean wp_spa_pod_parser_get_bytes(WpSpaPodParser *self, gconstpointer *value, guint32 *len)

  Gets the bytes value and its length from a spa pod parser object.

  Parameters:

    - self -- the spa pod parser object

    - value -- (out): the bytes value

    - len -- (out): the length of the bytes value

  Returns:

    TRUE if the value was obtained, FALSE otherwise

gboolean wp_spa_pod_parser_get_pointer(WpSpaPodParser *self, gconstpointer *value)

  Gets the pointer value and its type name from a spa pod parser object.

  Parameters:

    - self -- the spa pod parser object

    - value -- (out): the pointer value

  Returns:

    TRUE if the value was obtained, FALSE otherwise

gboolean wp_spa_pod_parser_get_fd(WpSpaPodParser *self, gint64 *value)

  Gets the Fd value from a spa pod parser object.

  Parameters:

    - self -- the spa pod parser object

    - value -- (out): the Fd value

  Returns:

    TRUE if the value was obtained, FALSE otherwise

gboolean wp_spa_pod_parser_get_rectangle(WpSpaPodParser *self, guint32 *width, guint32 *height)

  Gets the rectangle's width and height value from a spa pod parser object.

  Parameters:

    - self -- the spa pod parser object

    - width -- (out): the rectangle's width value

    - height -- (out): the rectangle's height value

  Returns:

    TRUE if the value was obtained, FALSE otherwise

gboolean wp_spa_pod_parser_get_fraction(WpSpaPodParser *self, guint32 *num, guint32 *denom)

  Gets the fractions's numerator and denominator value from a spa pod parser object.

  Parameters:

    - self -- the spa pod parser object

    - num -- (out): the fractions's numerator value

    - denom -- (out): the fractions's denominator value

  Returns:

    TRUE if the value was obtained, FALSE otherwise

WpSpaPod *wp_spa_pod_parser_get_pod(WpSpaPodParser *self)

  Gets the spa pod value from a spa pod parser object.

  Parameters:

    - self -- the spa pod parser object

  Returns:

    (transfer full): The spa pod value or NULL if it could not be obtained

gboolean wp_spa_pod_parser_get(WpSpaPodParser *self, ...)

  Gets a list of values from a spa pod parser object.

  Parameters:

    - self -- the spa pod parser object

    - ... -- (out): a list of values to get, followed by NULL

  Returns:

    TRUE if the values were obtained, FALSE otherwise

gboolean wp_spa_pod_parser_get_valist(WpSpaPodParser *self, va_list args)

  This is the `va_list` version of wp_spa_pod_parser_get().

  Parameters:

    - self -- the spa pod parser object

    - args -- the variable arguments passed to wp_spa_pod_parser_get()

  Returns:

    TRUE if the values were obtained, FALSE otherwise

void wp_spa_pod_parser_end(WpSpaPodParser *self)

  Ends the parser process.

  Parameters:

    - self -- the spa pod parser object

WpIterator *wp_spa_pod_new_iterator(WpSpaPod *pod)

  Creates a new iterator for a spa pod object.

  Parameters:

    - pod -- a spa pod object

  Returns:

    (transfer full): the new spa pod iterator

WP_TYPE_SPA_POD (wp_spa_pod_get_type ())

  The WpSpaPod GType.

WP_TYPE_SPA_POD_BUILDER (wp_spa_pod_builder_get_type ())

  The WpSpaPodBuilder GType.

WP_TYPE_SPA_POD_PARSER (wp_spa_pod_parser_get_type ())

  The WpSpaPodParser GType.