mirror of
https://github.com/gnif/LookingGlass.git
synced 2024-12-22 22:01:46 +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);
|
||||
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
|
||||
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);
|
||||
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