mirror of
https://github.com/gnif/LookingGlass.git
synced 2025-01-09 13:53:58 +00:00
[common] option: implement the ability to set option values
This can then be used to update the options from EGL filters, and then dumping them to files.
This commit is contained in:
parent
f0624ccf89
commit
bbd39b8185
2 changed files with 55 additions and 0 deletions
|
@ -83,6 +83,12 @@ const char * option_get_string(const char * module, const char * name);
|
||||||
bool option_get_bool (const char * module, const char * name);
|
bool option_get_bool (const char * module, const char * name);
|
||||||
float option_get_float (const char * module, const char * name);
|
float option_get_float (const char * module, const char * name);
|
||||||
|
|
||||||
|
// update the value of an option
|
||||||
|
void option_set_int (const char * module, const char * name, int value);
|
||||||
|
void option_set_string(const char * module, const char * name, const char * value);
|
||||||
|
void option_set_bool (const char * module, const char * name, bool value);
|
||||||
|
void option_set_float (const char * module, const char * name, float value);
|
||||||
|
|
||||||
// called by the main application to parse the command line arguments
|
// called by the main application to parse the command line arguments
|
||||||
bool option_parse(int argc, char * argv[]);
|
bool option_parse(int argc, char * argv[]);
|
||||||
|
|
||||||
|
|
|
@ -824,3 +824,52 @@ float option_get_float(const char * module, const char * name)
|
||||||
DEBUG_ASSERT(o->type == OPTION_TYPE_FLOAT);
|
DEBUG_ASSERT(o->type == OPTION_TYPE_FLOAT);
|
||||||
return o->value.x_float;
|
return o->value.x_float;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void option_set_int(const char * module, const char * name, int value)
|
||||||
|
{
|
||||||
|
struct Option * o = option_get(module, name);
|
||||||
|
if (!o)
|
||||||
|
{
|
||||||
|
DEBUG_ERROR("BUG: Failed to set the value for option %s:%s", module, name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
DEBUG_ASSERT(o->type == OPTION_TYPE_INT);
|
||||||
|
o->value.x_int = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
void option_set_string(const char * module, const char * name, const char * value)
|
||||||
|
{
|
||||||
|
struct Option * o = option_get(module, name);
|
||||||
|
if (!o)
|
||||||
|
{
|
||||||
|
DEBUG_ERROR("BUG: Failed to set the value for option %s:%s", module, name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
DEBUG_ASSERT(o->type == OPTION_TYPE_STRING);
|
||||||
|
free(o->value.x_string);
|
||||||
|
o->value.x_string = strdup(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
void option_set_bool(const char * module, const char * name, bool value)
|
||||||
|
{
|
||||||
|
struct Option * o = option_get(module, name);
|
||||||
|
if (!o)
|
||||||
|
{
|
||||||
|
DEBUG_ERROR("BUG: Failed to set the value for option %s:%s", module, name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
DEBUG_ASSERT(o->type == OPTION_TYPE_BOOL);
|
||||||
|
o->value.x_bool = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
void option_set_float(const char * module, const char * name, float value)
|
||||||
|
{
|
||||||
|
struct Option * o = option_get(module, name);
|
||||||
|
if (!o)
|
||||||
|
{
|
||||||
|
DEBUG_ERROR("BUG: Failed to set the value for option %s:%s", module, name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
DEBUG_ASSERT(o->type == OPTION_TYPE_FLOAT);
|
||||||
|
o->value.x_float = value;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue