5#ifndef YAC_PARAM_INTERNAL_H
6#define YAC_PARAM_INTERNAL_H
20 const char *(*get_name)(
const struct yac_param *param);
41 const char *value_str);
43 char *buf,
size_t buflen);
58#define YAC_PARAM_ASSERT(COND, ...) do { \
60 char *yac_param_error_buffer_ = NULL; \
61 size_t yac_param_error_buffer_size_ = 0; \
62 yac_param_get_error_buffer( \
63 &yac_param_error_buffer_, &yac_param_error_buffer_size_); \
64 if (yac_param_error_buffer_ && (yac_param_error_buffer_size_ > 0)) { \
65 snprintf(yac_param_error_buffer_, yac_param_error_buffer_size_, \
81 const char *value_str,
const char *param_name,
double *
value);
102 const char *value_str,
const char *param_name,
double *
value,
119 char *buf,
size_t buflen,
double value,
const char *value_desc,
120 const char *param_name);
172#define YAC_PARAM_CHECK_BASIC() \
173 YAC_ASSERT(name, "name is NULL"); \
174 YAC_ASSERT(name[0] != '\0', "name is empty string"); \
176 value_ptr, "value_ptr is NULL for parameter '%s'", name);
178#define ERROR_BUF_SIZE (256)
Public interface for YAC parameters.
yac_param_type
Parameter type for generic configuration interface.
int yac_param_parse_dble_with_unit(const char *value_str, const char *param_name, double *value, enum yac_param_angle_unit *unit)
double yac_wrap_deg(double value, char const *param_name)
@ YAC_PARAM_ANGLE_UNIT_RAD
@ YAC_PARAM_ANGLE_UNIT_DEG
double yac_deg_to_rad(double deg, char const *param_name)
double yac_wrap_rad(double value, char const *param_name)
double yac_rad_to_deg(double rad, char const *param_name)
int yac_param_format_scalar_dble(char *buf, size_t buflen, double value, const char *value_desc, const char *param_name)
int yac_param_parse_dble(const char *value_str, const char *param_name, double *value)
void yac_param_get_error_buffer(char **buffer, size_t *buffer_size)
int(* get_scalar_int)(const struct yac_param *param, int *value)
int(* set_scalar_int)(struct yac_param *param, int value)
int(* get_scalar_dble)(const struct yac_param *param, double *value)
int(* get_sub_count)(const struct yac_param *param, size_t *count)
int(* is_default)(const struct yac_param *param)
int(* append)(struct yac_param *param, struct yac_param **sub_param)
int(* set_scalar_dble)(struct yac_param *param, double value)
enum yac_param_type(* get_type)(const struct yac_param *param)
int(* set_scalar)(struct yac_param *param, const char *value_str)
int(* get_sub_by_name)(const struct yac_param *param, const char *name, struct yac_param **sub_param)
int(* get_sub_by_index)(struct yac_param *param, size_t idx, struct yac_param **sub_param)
int(* get_scalar)(const struct yac_param *param, char *buf, size_t buflen)