Browse Source

parameters: add new param_get_default_value()

release/1.12
Daniel Agar 4 years ago
parent
commit
1b9d68abd5
  1. 10
      src/lib/parameters/param.h
  2. 18
      src/lib/parameters/parameters.cpp

10
src/lib/parameters/param.h

@ -215,6 +215,16 @@ __EXPORT size_t param_size(param_t param); @@ -215,6 +215,16 @@ __EXPORT size_t param_size(param_t param);
*/
__EXPORT int param_get(param_t param, void *val);
/**
* Copy the default value of a parameter.
*
* @param param A handle returned by param_find or passed by param_foreach.
* @param val Where to return the value, assumed to point to suitable storage for the parameter type.
* For structures, a bitwise copy of the structure is performed to this address.
* @return Zero if the parameter's deafult value could be returned, nonzero otherwise.
*/
__EXPORT int param_get_default_value(param_t param, void *val);
/**
* Set the value of a parameter.
*

18
src/lib/parameters/parameters.cpp

@ -581,6 +581,24 @@ param_get(param_t param, void *val) @@ -581,6 +581,24 @@ param_get(param_t param, void *val)
return result;
}
int
param_get_default_value(param_t param, void *default_val)
{
if (default_val && handle_in_range(param)) {
switch (param_type(param)) {
case PARAM_TYPE_INT32:
memcpy(default_val, &param_info_base[param].val.i, param_size(param));
return 0;
case PARAM_TYPE_FLOAT:
memcpy(default_val, &param_info_base[param].val.f, param_size(param));
return 0;
}
}
return -1;
}
/**
* worker callback method to save the parameters
* @param arg unused

Loading…
Cancel
Save