Spa Json
-
struct WpSpaJson
- Since
0.4.8
-
struct WpSpaJsonBuilder
- Since
0.4.8
-
struct WpSpaJsonParser
- Since
0.4.8
-
WpSpaJson *wp_spa_json_ref(WpSpaJson *self)
Increases the reference count of a spa json object.
- Parameters:
self – a spa json object
- Returns:
(transfer full): self with an additional reference count on it
-
void wp_spa_json_unref(WpSpaJson *self)
Decreases the reference count on self and frees it when the ref count reaches zero.
- Parameters:
self – (transfer full): a spa json object
-
WpSpaJson *wp_spa_json_new_from_string(const gchar *json_str)
Constructs a new WpSpaJson from a JSON string.
- Parameters:
json_str – a JSON string
- Returns:
a new WpSpaJson that references the data in json_str. json_str is not copied, so it needs to stay alive.
-
WpSpaJson *wp_spa_json_new_from_stringn(const gchar *json_str, size_t len)
Constructs a new WpSpaJson from a JSON string with specific length.
- Since
0.4.10
- Parameters:
json_str – a JSON string
len – the specific length of the string
- Returns:
a new WpSpaJson that references the data in json_str. json_str is not copied, so it needs to stay alive.
-
WpSpaJson *wp_spa_json_new_wrap(struct spa_json *json)
Constructs a new WpSpaJson that wraps the given
spa_json
.- Parameters:
json – a spa_json
- Returns:
a new WpSpaJson that references the data in json. json is not copied, so it needs to stay alive.
-
const struct spa_json *wp_spa_json_get_spa_json(const WpSpaJson *self)
Converts a WpSpaJson pointer to a
struct spa_json
one, for use with native pipewire & spa functions. The returned pointer is owned by WpSpaJson and may not be modified or freed.- Parameters:
self – a spa json object
- Returns:
a const pointer to the underlying spa_json structure
-
const gchar *wp_spa_json_get_data(const WpSpaJson *self)
Returns the json data.
- Parameters:
self – a spa json object
- Returns:
a const pointer to the json data
-
size_t wp_spa_json_get_size(const WpSpaJson *self)
Returns the json data size.
- Parameters:
self – a spa json object
- Returns:
the json data size
-
gchar *wp_spa_json_to_string(const WpSpaJson *self)
Returns a newly allocated json string with length matching the size.
- Since
0.4.11
- Parameters:
self – a spa json object
- Returns:
(transfer full): the json string with length matching the size
-
WpSpaJson *wp_spa_json_copy(WpSpaJson *other)
Copies a spa json object.
- Parameters:
other – a spa json object
- Returns:
(transfer full): The newly copied spa json
-
gboolean wp_spa_json_is_unique_owner(WpSpaJson *self)
Checks if the json is the unique owner of its data or not.
- Parameters:
self – a spa json object
- Returns:
TRUE if the json owns the data, FALSE otherwise.
-
WpSpaJson *wp_spa_json_ensure_unique_owner(WpSpaJson *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 json object
- Returns:
(transfer full): the uniquely owned spa json object which may or may not be the same as self.
-
WpSpaJson *wp_spa_json_new_null(void)
Creates a spa json of type NULL.
- Returns:
(transfer full): The new spa json
-
WpSpaJson *wp_spa_json_new_boolean(gboolean value)
Creates a spa json of type boolean.
- Parameters:
value – the boolean value
- Returns:
(transfer full): The new spa json
-
WpSpaJson *wp_spa_json_new_int(gint value)
Creates a spa json of type int.
- Parameters:
value – the int value
- Returns:
(transfer full): The new spa json
-
WpSpaJson *wp_spa_json_new_float(float value)
Creates a spa json of type float.
- Parameters:
value – the float value
- Returns:
(transfer full): The new spa json
-
WpSpaJson *wp_spa_json_new_string(const gchar *value)
Creates a spa json of type string.
- Parameters:
value – the string value
- Returns:
(transfer full): The new spa json
-
WpSpaJson *wp_spa_json_new_array(const gchar *format, ...)
Creates a spa json of type array.
- Parameters:
format – (nullable): the first value format (“n”, “b”, “i”, “f”, “s” or “J”)
... – a list of array types and values, followed by NULL
- Returns:
(transfer full): The new spa json
-
WpSpaJson *wp_spa_json_new_array_valist(const gchar *format, va_list args)
This is the
va_list
version of wp_spa_json_new_array()- Parameters:
format – (nullable): the first value format (“n”, “b”, “i”, “f”, “s” or “J”)
args – the variable arguments passed to wp_spa_json_new_array()
- Returns:
(transfer full): The new spa json
-
WpSpaJson *wp_spa_json_new_object(const gchar *key, const gchar *format, ...)
Creates a spa json of type object.
- Parameters:
key – (nullable): the first object property key
format – (nullable): the first property format (“n”, “b”, “i”, “f”, “s” or “J”)
... – a list of object properties and values, followed by NULL
- Returns:
(transfer full): The new spa json
-
WpSpaJson *wp_spa_json_new_object_valist(const gchar *key, const gchar *format, va_list args)
This is the
va_list
version of wp_spa_json_new_object()- Parameters:
key – (nullable): the first object property key
format – (nullable): the first property format (“n”, “b”, “i”, “f”, “s” or “J”)
args – the variable arguments passed to wp_spa_json_new_object()
- Returns:
(transfer full): The new spa json
-
gboolean wp_spa_json_is_null(WpSpaJson *self)
Checks wether the spa json is of type null or not.
- Parameters:
self – the spa json object
- Returns:
TRUE if it is of type null, FALSE otherwise
-
gboolean wp_spa_json_is_boolean(WpSpaJson *self)
Checks wether the spa json is of type boolean or not.
- Parameters:
self – the spa json object
- Returns:
TRUE if it is of type boolean, FALSE otherwise
-
gboolean wp_spa_json_is_int(WpSpaJson *self)
Checks wether the spa json is of type int or not.
- Parameters:
self – the spa json object
- Returns:
TRUE if it is of type int, FALSE otherwise
-
gboolean wp_spa_json_is_float(WpSpaJson *self)
Checks wether the spa json is of type float or not.
- Parameters:
self – the spa json object
- Returns:
TRUE if it is of type float, FALSE otherwise
-
gboolean wp_spa_json_is_string(WpSpaJson *self)
Checks wether the spa json is of type string or not.
- Parameters:
self – the spa json object
- Returns:
TRUE if it is of type string, FALSE otherwise
-
gboolean wp_spa_json_is_array(WpSpaJson *self)
Checks wether the spa json is of type array or not.
- Parameters:
self – the spa json object
- Returns:
TRUE if it is of type array, FALSE otherwise
-
gboolean wp_spa_json_is_object(WpSpaJson *self)
Checks wether the spa json is of type object or not.
- Parameters:
self – the spa json object
- Returns:
TRUE if it is of type object, FALSE otherwise
-
gboolean wp_spa_json_parse_boolean(WpSpaJson *self, gboolean *value)
Parses the boolean value of a spa json object.
- Parameters:
self – the spa json object
value – (out): the boolean value
- Returns:
TRUE if the value was obtained, FALSE otherwise
-
gboolean wp_spa_json_parse_int(WpSpaJson *self, gint *value)
Parses the int value of a spa json object.
- Parameters:
self – the spa json object
value – (out): the int value
- Returns:
TRUE if the value was obtained, FALSE otherwise
-
gboolean wp_spa_json_parse_float(WpSpaJson *self, float *value)
Parses the float value of a spa json object.
- Parameters:
self – the spa json object
value – (out): the float value
- Returns:
TRUE if the value was obtained, FALSE otherwise
-
gchar *wp_spa_json_parse_string(WpSpaJson *self)
Parses the string value of a spa json object.
- Parameters:
self – the spa json object
- Returns:
(transfer full): The newly allocated parsed string
-
gboolean wp_spa_json_parse_array(WpSpaJson *self, ...)
Parses the array types and values of a spa json object.
- Parameters:
self – the spa json object
... – (out): the list of array types and values, followed by NULL
- Returns:
TRUE if the types and values were obtained, FALSE otherwise
-
gboolean wp_spa_json_parse_array_valist(WpSpaJson *self, va_list args)
This is the
va_list
version of wp_spa_json_parse_array()- Parameters:
self – the spa json object
args – (out): the variable arguments passed to wp_spa_json_parse_array()
- Returns:
TRUE if the types and values were obtained, FALSE otherwise
-
gboolean wp_spa_json_parse_object(WpSpaJson *self, ...)
Parses the object properties and values of a spa json object.
- Parameters:
self – the spa json object
... – (out): the list of object properties and values, followed by NULL
- Returns:
TRUE if the properties and values were obtained, FALSE otherwise
-
gboolean wp_spa_json_parse_object_valist(WpSpaJson *self, va_list args)
This is the
va_list
version of wp_spa_json_parse_object()- Parameters:
self – the spa json object
args – (out): the variable arguments passed to wp_spa_json_parse_object()
- Returns:
TRUE if the properties and values were obtained, FALSE otherwise
-
gboolean wp_spa_json_object_get(WpSpaJson *self, ...)
Parses the object property values of a spa json object.
- Parameters:
self – the spa json object
... – the list of property names, formats and values, followed by NULL
- Returns:
TRUE if the properties and values were obtained, FALSE otherwise
-
gboolean wp_spa_json_object_get_valist(WpSpaJson *self, va_list args)
This is the
va_list
version of wp_spa_json_object_get()- Parameters:
self – the spa json object
args – the variable arguments passed to wp_spa_json_object_get()
- Returns:
TRUE if the properties and values were obtained, FALSE otherwise
-
WpSpaJsonBuilder *wp_spa_json_builder_ref(WpSpaJsonBuilder *self)
Increases the reference count of a spa json builder.
- Parameters:
self – a spa json builder object
- Returns:
(transfer full): self with an additional reference count on it
-
void wp_spa_json_builder_unref(WpSpaJsonBuilder *self)
Decreases the reference count on self and frees it when the ref count reaches zero.
- Parameters:
self – (transfer full): a spa json builder object
-
WpSpaJsonBuilder *wp_spa_json_builder_new_array(void)
Creates a spa json builder of type array.
- Returns:
(transfer full): the new spa json builder
-
WpSpaJsonBuilder *wp_spa_json_builder_new_object(void)
Creates a spa json builder of type object.
- Returns:
(transfer full): the new spa json builder
-
void wp_spa_json_builder_add_property(WpSpaJsonBuilder *self, const gchar *key)
Adds a property into the builder.
- Parameters:
self – the spa json builder object
key – the name of the property
-
void wp_spa_json_builder_add_null(WpSpaJsonBuilder *self)
Adds a null value into the builder.
- Parameters:
self – the spa json builder object
-
void wp_spa_json_builder_add_boolean(WpSpaJsonBuilder *self, gboolean value)
Adds a boolean value into the builder.
- Parameters:
self – the spa json builder object
value – the boolean value
-
void wp_spa_json_builder_add_int(WpSpaJsonBuilder *self, gint value)
Adds a int value into the builder.
- Parameters:
self – the spa json builder object
value – the int value
-
void wp_spa_json_builder_add_float(WpSpaJsonBuilder *self, float value)
Adds a float value into the builder.
- Parameters:
self – the spa json builder object
value – the float value
-
void wp_spa_json_builder_add_string(WpSpaJsonBuilder *self, const gchar *value)
Adds a string value into the builder.
- Parameters:
self – the spa json builder object
value – the string value
-
void wp_spa_json_builder_add_json(WpSpaJsonBuilder *self, WpSpaJson *json)
Adds a json value into the builder.
- Parameters:
self – the spa json builder object
json – (transfer none): the json value
-
void wp_spa_json_builder_add(WpSpaJsonBuilder *self, ...)
Adds values into the builder.
- Parameters:
self – the spa json builder object
... – the json values
-
void wp_spa_json_builder_add_valist(WpSpaJsonBuilder *self, va_list args)
This is the
va_list
version of wp_spa_json_builder_add()- Parameters:
self – the spa json builder object
args – the variable arguments passed to wp_spa_json_builder_add()
-
WpSpaJson *wp_spa_json_builder_end(WpSpaJsonBuilder *self)
Ends the builder process and returns the constructed spa json object.
- Parameters:
self – the spa json builder object
- Returns:
(transfer full): the constructed spa json object
-
WpSpaJsonParser *wp_spa_json_parser_ref(WpSpaJsonParser *self)
Increases the reference count of a spa json parser.
- Parameters:
self – a spa json parser object
- Returns:
(transfer full): self with an additional reference count on it
-
void wp_spa_json_parser_unref(WpSpaJsonParser *self)
Decreases the reference count on self and frees it when the ref count reaches zero.
- Parameters:
self – (transfer full): a spa json parser object
-
WpSpaJsonParser *wp_spa_json_parser_new_array(WpSpaJson *json)
Creates a spa json array parser. The json object must be valid for the entire life-cycle of the returned parser.
- Parameters:
json – the spa json array to parse
- Returns:
(transfer full): The new spa json parser
-
WpSpaJsonParser *wp_spa_json_parser_new_object(WpSpaJson *json)
Creates a spa json object parser. The json object must be valid for the entire life-cycle of the returned parser.
- Parameters:
json – the spa json object to parse
- Returns:
(transfer full): The new spa json parser
-
gboolean wp_spa_json_parser_get_null(WpSpaJsonParser *self)
Gets the null value from a spa json parser.
- Parameters:
self – the spa json parser object
- Returns:
TRUE if the null value is present, FALSE otherwise
-
gboolean wp_spa_json_parser_get_boolean(WpSpaJsonParser *self, gboolean *value)
Gets the boolean value from a spa json parser.
- Parameters:
self – the spa json parser object
value – (out): the boolean value
- Returns:
TRUE if the value was obtained, FALSE otherwise
-
gboolean wp_spa_json_parser_get_int(WpSpaJsonParser *self, gint *value)
Gets the int value from a spa json parser object.
- Parameters:
self – the spa json parser object
value – (out): the int value
- Returns:
TRUE if the value was obtained, FALSE otherwise
-
gboolean wp_spa_json_parser_get_float(WpSpaJsonParser *self, float *value)
Gets the float value from a spa json parser object.
- Parameters:
self – the spa json parser object
value – (out): the float value
- Returns:
TRUE if the value was obtained, FALSE otherwise
-
gchar *wp_spa_json_parser_get_string(WpSpaJsonParser *self)
Gets the string value from a spa json parser object.
- Parameters:
self – the spa json parser object
- Returns:
(transfer full): The newly allocated parsed string
-
WpSpaJson *wp_spa_json_parser_get_json(WpSpaJsonParser *self)
Gets the spa json value from a spa json parser object.
- Parameters:
self – the spa json parser object
- Returns:
(transfer full): The spa json value or NULL if it could not be obtained
-
gboolean wp_spa_json_parser_get(WpSpaJsonParser *self, ...)
Gets the values from a spa json parser object.
- Parameters:
self – the spa json parser object
... – (out): a list of values to get, followed by NULL
- Returns:
TRUE if the value was obtained, FALSE otherwise
-
gboolean wp_spa_json_parser_get_valist(WpSpaJsonParser *self, va_list args)
This is the
va_list
version of wp_spa_json_parser_get()- Parameters:
self – the spa json parser object
args – the variable arguments passed to wp_spa_json_parser_get()
- Returns:
TRUE if the value was obtained, FALSE otherwise
-
WpIterator *wp_spa_json_new_iterator(WpSpaJson *self)
Creates a new iterator for a spa json object.
- Parameters:
self – the spa json object
- Returns:
(transfer full): the new spa json iterator
-
WP_TYPE_SPA_JSON (wp_spa_json_get_type ())
The WpSpaJson GType.
-
WP_TYPE_SPA_JSON_BUILDER (wp_spa_json_builder_get_type ())
The WpSpaJsonBuilder GType.
-
WP_TYPE_SPA_JSON_PARSER (wp_spa_json_parser_get_type ())
The WpSpaJsonParser GType.