Change semantics of obs-data default values

Default values are now permanently stored in the obs_data_items and
can be accessed via the new get_default functions

Also default values are no longer serialized to JSON to ease transition
to new default values
This commit is contained in:
Palana
2014-06-16 20:55:09 +02:00
parent a6b52156b2
commit 7f172eb1b4
2 changed files with 375 additions and 18 deletions

View File

@@ -84,9 +84,6 @@ EXPORT void obs_data_setarray(obs_data_t data, const char *name,
/*
* Default value functions.
*
* These functions check to ensure the value exists, and is of a specific type.
* If not, it sets the default value instead.
*/
EXPORT void obs_data_set_default_string(obs_data_t data, const char *name,
const char *val);
@@ -101,7 +98,6 @@ EXPORT void obs_data_set_default_obj(obs_data_t data, const char *name,
/*
* Get functions
* NOTE: use a macro if you use 'defaults' in more than one place
*/
EXPORT const char *obs_data_getstring(obs_data_t data, const char *name);
EXPORT long long obs_data_getint(obs_data_t data, const char *name);
@@ -110,6 +106,15 @@ EXPORT bool obs_data_getbool(obs_data_t data, const char *name);
EXPORT obs_data_t obs_data_getobj(obs_data_t data, const char *name);
EXPORT obs_data_array_t obs_data_getarray(obs_data_t data, const char *name);
EXPORT const char *obs_data_get_default_string(obs_data_t data,
const char *name);
EXPORT long long obs_data_get_default_int(obs_data_t data, const char *name);
EXPORT double obs_data_get_default_double(obs_data_t data, const char *name);
EXPORT bool obs_data_get_default_bool(obs_data_t data, const char *name);
EXPORT obs_data_t obs_data_get_default_obj(obs_data_t data, const char *name);
EXPORT obs_data_array_t obs_data_get_default_array(obs_data_t data,
const char *name);
/* Array functions */
EXPORT obs_data_array_t obs_data_array_create();
EXPORT void obs_data_array_addref(obs_data_array_t array);
@@ -122,6 +127,24 @@ EXPORT void obs_data_array_insert(obs_data_array_t array, size_t idx,
obs_data_t obj);
EXPORT void obs_data_array_erase(obs_data_array_t array, size_t idx);
/* ------------------------------------------------------------------------- */
/* Item status inspection */
EXPORT bool obs_data_has_user_value(obs_data_t data, const char *name);
EXPORT bool obs_data_has_default(obs_data_t data, const char *name);
EXPORT bool obs_data_item_has_user_value(obs_data_item_t data);
EXPORT bool obs_data_item_has_default(obs_data_item_t data);
/* ------------------------------------------------------------------------- */
/* Clearing data values */
EXPORT void obs_data_unset_user_value(obs_data_t data, const char *name);
EXPORT void obs_data_unset_default_value(obs_data_t data, const char *name);
EXPORT void obs_data_item_unset_user_value(obs_data_item_t data);
EXPORT void obs_data_item_unset_default_value(obs_data_item_t data);
/* ------------------------------------------------------------------------- */
/* Item iteration */
@@ -143,6 +166,16 @@ EXPORT void obs_data_item_setbool(obs_data_item_t *item, bool val);
EXPORT void obs_data_item_setobj(obs_data_item_t *item, obs_data_t val);
EXPORT void obs_data_item_setarray(obs_data_item_t *item, obs_data_array_t val);
EXPORT void obs_data_item_set_default_string(obs_data_item_t *item,
const char *val);
EXPORT void obs_data_item_set_default_int(obs_data_item_t *item, long long val);
EXPORT void obs_data_item_set_default_double(obs_data_item_t *item, double val);
EXPORT void obs_data_item_set_default_bool(obs_data_item_t *item, bool val);
EXPORT void obs_data_item_set_default_obj(obs_data_item_t *item,
obs_data_t val);
EXPORT void obs_data_item_set_default_array(obs_data_item_t *item,
obs_data_array_t val);
/* Item get functions */
EXPORT const char *obs_data_item_getstring(obs_data_item_t item);
EXPORT long long obs_data_item_getint(obs_data_item_t item);
@@ -151,6 +184,13 @@ EXPORT bool obs_data_item_getbool(obs_data_item_t item);
EXPORT obs_data_t obs_data_item_getobj(obs_data_item_t item);
EXPORT obs_data_array_t obs_data_item_getarray(obs_data_item_t item);
EXPORT const char *obs_data_item_get_default_string(obs_data_item_t item);
EXPORT long long obs_data_item_get_default_int(obs_data_item_t item);
EXPORT double obs_data_item_get_default_double(obs_data_item_t item);
EXPORT bool obs_data_item_get_default_bool(obs_data_item_t item);
EXPORT obs_data_t obs_data_item_get_default_obj(obs_data_item_t item);
EXPORT obs_data_array_t obs_data_item_get_default_array(obs_data_item_t item);
/* ------------------------------------------------------------------------- */
/* Helper functions for certain structures */
EXPORT void obs_data_set_vec2(obs_data_t data, const char *name,
@@ -180,6 +220,15 @@ EXPORT void obs_data_get_vec4(obs_data_t data, const char *name,
EXPORT void obs_data_get_quat(obs_data_t data, const char *name,
struct quat *val);
EXPORT void obs_data_get_default_vec2(obs_data_t data, const char *name,
struct vec2 *val);
EXPORT void obs_data_get_default_vec3(obs_data_t data, const char *name,
struct vec3 *val);
EXPORT void obs_data_get_default_vec4(obs_data_t data, const char *name,
struct vec4 *val);
EXPORT void obs_data_get_default_quat(obs_data_t data, const char *name,
struct quat *val);
/* ------------------------------------------------------------------------- */
/* OBS-specific functions */