Add obs-data autoselect functions

These are meant to reflect auto-detection configuration changes that
should not be written to the config, for example, frame rate changes
for a camera where the (user-/config-file-)configured frame rate isn't
available but a similar frame rate can be automatically chosen
This commit is contained in:
Palana
2014-06-16 21:13:32 +02:00
parent 7f172eb1b4
commit c2bb95250b
2 changed files with 396 additions and 11 deletions

View File

@@ -96,6 +96,22 @@ EXPORT void obs_data_set_default_bool(obs_data_t data, const char *name,
EXPORT void obs_data_set_default_obj(obs_data_t data, const char *name,
obs_data_t obj);
/*
* Application overrides
* Use these to communicate the actual values of settings in case the user
* settings aren't appropriate
*/
EXPORT void obs_data_set_autoselect_string(obs_data_t data, const char *name,
const char *val);
EXPORT void obs_data_set_autoselect_int(obs_data_t data, const char *name,
long long val);
EXPORT void obs_data_set_autoselect_double(obs_data_t data, const char *name,
double val);
EXPORT void obs_data_set_autoselect_bool(obs_data_t data, const char *name,
bool val);
EXPORT void obs_data_set_autoselect_obj(obs_data_t data, const char *name,
obs_data_t obj);
/*
* Get functions
*/
@@ -115,6 +131,16 @@ 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);
EXPORT const char *obs_data_get_autoselect_string(obs_data_t data,
const char *name);
EXPORT long long obs_data_get_autoselect_int(obs_data_t data, const char *name);
EXPORT double obs_data_get_autoselect_double(obs_data_t data, const char *name);
EXPORT bool obs_data_get_autoselect_bool(obs_data_t data, const char *name);
EXPORT obs_data_t obs_data_get_autoselect_obj(obs_data_t data,
const char *name);
EXPORT obs_data_array_t obs_data_get_autoselect_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);
@@ -132,18 +158,22 @@ EXPORT void obs_data_array_erase(obs_data_array_t array, size_t idx);
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_has_autoselect(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);
EXPORT bool obs_data_item_has_autoselect(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_unset_autoselect_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);
EXPORT void obs_data_item_unset_autoselect_value(obs_data_item_t data);
/* ------------------------------------------------------------------------- */
/* Item iteration */
@@ -176,6 +206,18 @@ EXPORT void obs_data_item_set_default_obj(obs_data_item_t *item,
EXPORT void obs_data_item_set_default_array(obs_data_item_t *item,
obs_data_array_t val);
EXPORT void obs_data_item_set_autoselect_string(obs_data_item_t *item,
const char *val);
EXPORT void obs_data_item_set_autoselect_int(obs_data_item_t *item,
long long val);
EXPORT void obs_data_item_set_autoselect_double(obs_data_item_t *item,
double val);
EXPORT void obs_data_item_set_autoselect_bool(obs_data_item_t *item, bool val);
EXPORT void obs_data_item_set_autoselect_obj(obs_data_item_t *item,
obs_data_t val);
EXPORT void obs_data_item_set_autoselect_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);
@@ -191,6 +233,14 @@ 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);
EXPORT const char *obs_data_item_get_autoselect_string(obs_data_item_t item);
EXPORT long long obs_data_item_get_autoselect_int(obs_data_item_t item);
EXPORT double obs_data_item_get_autoselect_double(obs_data_item_t item);
EXPORT bool obs_data_item_get_autoselect_bool(obs_data_item_t item);
EXPORT obs_data_t obs_data_item_get_autoselect_obj(obs_data_item_t item);
EXPORT obs_data_array_t obs_data_item_get_autoselect_array(
obs_data_item_t item);
/* ------------------------------------------------------------------------- */
/* Helper functions for certain structures */
EXPORT void obs_data_set_vec2(obs_data_t data, const char *name,
@@ -211,6 +261,15 @@ EXPORT void obs_data_set_default_vec4(obs_data_t data, const char *name,
EXPORT void obs_data_set_default_quat(obs_data_t data, const char *name,
const struct quat *val);
EXPORT void obs_data_set_autoselect_vec2(obs_data_t data, const char *name,
const struct vec2 *val);
EXPORT void obs_data_set_autoselect_vec3(obs_data_t data, const char *name,
const struct vec3 *val);
EXPORT void obs_data_set_autoselect_vec4(obs_data_t data, const char *name,
const struct vec4 *val);
EXPORT void obs_data_set_autoselect_quat(obs_data_t data, const char *name,
const struct quat *val);
EXPORT void obs_data_get_vec2(obs_data_t data, const char *name,
struct vec2 *val);
EXPORT void obs_data_get_vec3(obs_data_t data, const char *name,
@@ -229,6 +288,15 @@ EXPORT void obs_data_get_default_vec4(obs_data_t data, const char *name,
EXPORT void obs_data_get_default_quat(obs_data_t data, const char *name,
struct quat *val);
EXPORT void obs_data_get_autoselect_vec2(obs_data_t data, const char *name,
struct vec2 *val);
EXPORT void obs_data_get_autoselect_vec3(obs_data_t data, const char *name,
struct vec3 *val);
EXPORT void obs_data_get_autoselect_vec4(obs_data_t data, const char *name,
struct vec4 *val);
EXPORT void obs_data_get_autoselect_quat(obs_data_t data, const char *name,
struct quat *val);
/* ------------------------------------------------------------------------- */
/* OBS-specific functions */