| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349 | 
							- Data Settings API Reference (obs_data_t)
 
- ========================================
 
- Data settings objects are reference-counted objects that store values in
 
- a string-table or array.  They're similar to Json objects, but
 
- additionally allow additional functionality such as default or
 
- auto-selection values.  Data is saved/loaded to/from Json text and Json
 
- text files.
 
- .. type:: obs_data_t
 
-    A reference-counted data object.
 
- .. type:: obs_data_array_t
 
-    A reference-counted data array object.
 
- .. code:: cpp
 
-    #include <obs.h>
 
- General Functions
 
- -----------------
 
- .. function:: obs_data_t *obs_data_create()
 
-    :return: A new reference to a data object. Release with
 
-             :c:func:`obs_data_release()`.
 
- ---------------------
 
- .. function:: obs_data_t *obs_data_create_from_json(const char *json_string)
 
-    Creates a data object from a Json string.
 
-    :param json_string: Json string
 
-    :return:            A new reference to a data object. Release with
 
-                        :c:func:`obs_data_release()`.
 
- ---------------------
 
- .. function:: obs_data_t *obs_data_create_from_json_file(const char *json_file)
 
-    Creates a data object from a Json file.
 
-    :param json_file: Json file path
 
-    :return:          A new reference to a data object. Release with
 
-                      :c:func:`obs_data_release()`.
 
- ---------------------
 
- .. function:: obs_data_t *obs_data_create_from_json_file_safe(const char *json_file, const char *backup_ext)
 
-    Creates a data object from a Json file, with a backup file in case
 
-    the original is corrupted or fails to load.
 
-    :param json_file:  Json file path
 
-    :param backup_ext: Backup file extension
 
-    :return:           A new reference to a data object. Release with
 
-                        :c:func:`obs_data_release()`.
 
- ---------------------
 
- .. function:: void obs_data_addref(obs_data_t *data)
 
-               void obs_data_release(obs_data_t *data)
 
-    Adds/releases a reference to a data object.
 
- ---------------------
 
- .. function:: const char *obs_data_get_json(obs_data_t *data)
 
-    Generates a new json string. The string allocation is stored within
 
-    the data object itself, and does not need to be manually freed.
 
-    :return: Json string for this object
 
- ---------------------
 
- .. function:: const char *obs_data_get_json_with_defaults(obs_data_t *data)
 
-    Same as :c:func:`obs_data_get_json()` but default values are also serialized.
 
-    :return: Json string for this object
 
- ---------------------
 
- .. function:: const char *obs_data_get_json_pretty(obs_data_t *data)
 
-    Same as :c:func:`obs_data_get_json()` but the JSON data is pretty-printed.
 
-    :return: Json string for this object
 
- ---------------------
 
- .. function:: const char *obs_data_get_json_pretty_with_defaults(obs_data_t *data)
 
-    Same as :c:func:`obs_data_get_json_pretty()` but default values are also serialized.
 
-    :return: Json string for this object
 
- ---------------------
 
- .. function:: const char *obs_data_get_last_json(obs_data_t *data)
 
-    Returns the last json string generated for this data object. Does not
 
-    generate a new string. Use :c:func:`obs_data_get_json()` to generate
 
-    a json string first.
 
-    :return: Json string for this object
 
- ---------------------
 
- .. function:: bool obs_data_save_json(obs_data_t *data, const char *file)
 
-    Saves the data to a file as Json text.
 
-    :param file: The file to save to
 
-    :return:     *true* if successful, *false* otherwise
 
- ---------------------
 
- .. function:: bool obs_data_save_json_safe(obs_data_t *data, const char *file, const char *temp_ext, const char *backup_ext)
 
-    Saves the data to a file as Json text, and if overwriting an old
 
-    file, backs up that old file to help prevent potential file
 
-    corruption.
 
-    :param file:       The file to save to
 
-    :param backup_ext: The backup extension to use for the overwritten
 
-                       file if it exists
 
-    :return:           *true* if successful, *false* otherwise
 
- ---------------------
 
- .. function:: void obs_data_apply(obs_data_t *target, obs_data_t *apply_data)
 
-    Merges the data of *apply_data* in to *target*.
 
- ---------------------
 
- .. function:: void obs_data_erase(obs_data_t *data, const char *name)
 
-    Erases the user data for item *name* within the data object.
 
- ---------------------
 
- .. function:: void obs_data_clear(obs_data_t *data)
 
-    Clears all user data in the data object.
 
- ---------------------
 
- Set Functions
 
- -------------
 
- .. function:: void obs_data_set_string(obs_data_t *data, const char *name, const char *val)
 
- ---------------------
 
- .. function:: void obs_data_set_int(obs_data_t *data, const char *name, long long val)
 
- ---------------------
 
- .. function:: void obs_data_set_double(obs_data_t *data, const char *name, double val)
 
- ---------------------
 
- .. function:: void obs_data_set_bool(obs_data_t *data, const char *name, bool val)
 
- ---------------------
 
- .. function:: void obs_data_set_obj(obs_data_t *data, const char *name, obs_data_t *obj)
 
- ---------------------
 
- .. function:: void obs_data_set_array(obs_data_t *data, const char *name, obs_data_array_t *array)
 
- ---------------------
 
- .. _obs_data_get_funcs:
 
- Get Functions
 
- -------------
 
- .. function:: const char *obs_data_get_string(obs_data_t *data, const char *name)
 
- ---------------------
 
- .. function:: long long obs_data_get_int(obs_data_t *data, const char *name)
 
- ---------------------
 
- .. function:: double obs_data_get_double(obs_data_t *data, const char *name)
 
- ---------------------
 
- .. function:: bool obs_data_get_bool(obs_data_t *data, const char *name)
 
- ---------------------
 
- .. function:: obs_data_t *obs_data_get_obj(obs_data_t *data, const char *name)
 
-    :return: An incremented reference to a data object. Release with
 
-             :c:func:`obs_data_release()`.
 
- ---------------------
 
- .. function:: obs_data_array_t *obs_data_get_array(obs_data_t *data, const char *name)
 
-    :return: An incremented reference to a data array object. Release
 
-             with :c:func:`obs_data_array_release()`.
 
- ---------------------
 
- .. _obs_data_default_funcs:
 
- Default Value Functions
 
- -----------------------
 
- Default values are used to determine what value will be given if a value
 
- is not set.
 
- .. function:: obs_data_t *obs_data_get_defaults(obs_data_t *data);
 
-    :return: obs_data_t * with all default values (recursively for all objects as well).
 
- -----------------------
 
- .. function:: void obs_data_set_default_string(obs_data_t *data, const char *name, const char *val)
 
-               const char *obs_data_get_default_string(obs_data_t *data, const char *name)
 
- ---------------------
 
- .. function:: void obs_data_set_default_int(obs_data_t *data, const char *name, long long val)
 
-               long long obs_data_get_default_int(obs_data_t *data, const char *name)
 
- ---------------------
 
- .. function:: void obs_data_set_default_double(obs_data_t *data, const char *name, double val)
 
-               double obs_data_get_default_double(obs_data_t *data, const char *name)
 
- ---------------------
 
- .. function:: void obs_data_set_default_bool(obs_data_t *data, const char *name, bool val)
 
-               bool obs_data_get_default_bool(obs_data_t *data, const char *name)
 
- ---------------------
 
- .. function:: void obs_data_set_default_obj(obs_data_t *data, const char *name, obs_data_t *obj)
 
-               obs_data_t *obs_data_get_default_obj(obs_data_t *data, const char *name)
 
-    :return: An incremented reference to a data object. Release with
 
-             :c:func:`obs_data_release()`.
 
- ----------------------
 
- .. function:: void obs_data_set_default_array(obs_data_t *data, const char *name, obs_data_array_t *arr)
 
-               obs_data_array_t *obs_data_get_default_array(obs_data_t *data, const char *name)
 
- Autoselect Functions
 
- --------------------
 
- Autoselect values are optionally used to determine what values should be
 
- used to ensure functionality if the currently set values are
 
- inappropriate or invalid.
 
- .. function:: void obs_data_set_autoselect_string(obs_data_t *data, const char *name, const char *val)
 
-               const char *obs_data_get_autoselect_string(obs_data_t *data, const char *name)
 
- ---------------------
 
- .. function:: void obs_data_set_autoselect_int(obs_data_t *data, const char *name, long long val)
 
-               long long obs_data_get_autoselect_int(obs_data_t *data, const char *name)
 
- ---------------------
 
- .. function:: void obs_data_set_autoselect_double(obs_data_t *data, const char *name, double val)
 
-               double obs_data_get_autoselect_double(obs_data_t *data, const char *name)
 
- ---------------------
 
- .. function:: void obs_data_set_autoselect_bool(obs_data_t *data, const char *name, bool val)
 
-               bool obs_data_get_autoselect_bool(obs_data_t *data, const char *name)
 
- ---------------------
 
- .. function:: void obs_data_set_autoselect_obj(obs_data_t *data, const char *name, obs_data_t *obj)
 
-               obs_data_t *obs_data_get_autoselect_obj(obs_data_t *data, const char *name)
 
-    :return: An incremented reference to a data object. Release with
 
-             :c:func:`obs_data_release()`.
 
- ---------------------
 
- .. function:: void obs_data_set_autoselect_array(obs_data_t *data, const char *name, obs_data_array_t *arr)
 
-               obs_data_array_t *obs_data_get_autoselect_array(obs_data_t *data, const char *name)
 
-    :return: An incremented reference to a data array object. Release
 
-              with :c:func:`obs_data_array_release()`.
 
-    .. versionadded:: 30.1
 
- ---------------------
 
- Array Functions
 
- ---------------
 
- .. function:: obs_data_array_t *obs_data_array_create()
 
-    :return: A new reference to a data array object. Release
 
-             with :c:func:`obs_data_array_release()`.
 
- ---------------------
 
- .. function:: void obs_data_array_addref(obs_data_array_t *array)
 
- ---------------------
 
- .. function:: void obs_data_array_release(obs_data_array_t *array)
 
- ---------------------
 
- .. function:: size_t obs_data_array_count(obs_data_array_t *array)
 
- ---------------------
 
- .. function:: obs_data_t *obs_data_array_item(obs_data_array_t *array, size_t idx)
 
-    :return: An incremented reference to the data object associated with
 
-             this array entry. Release with :c:func:`obs_data_release()`.
 
- ---------------------
 
- .. function:: size_t obs_data_array_push_back(obs_data_array_t *array, obs_data_t *obj)
 
- ---------------------
 
- .. function:: void obs_data_array_insert(obs_data_array_t *array, size_t idx, obs_data_t *obj)
 
- ---------------------
 
- .. function:: void obs_data_array_erase(obs_data_array_t *array, size_t idx)
 
 
  |