69 #ifndef UVES_PARAMETERS_H
70 #define UVES_PARAMETERS_H
76 #include <uves_utils_wrappers.h>
90 uves_define_global_parameters(cpl_parameterlist *parlist);
93 uves_define_efficiency_parameters(cpl_parameterlist *parlist);
97 uves_define_rebin_for_response_chain_parameters(cpl_parameterlist *parlist);
100 uves_define_reduce_for_response_chain_parameters(cpl_parameterlist *parlist);
103 uves_define_efficiency_for_response_chain_parameters(cpl_parameterlist *parlist);
106 uves_define_extract_for_response_chain_parameters(cpl_parameterlist *parlist);
109 uves_define_background_for_response_chain_parameters(cpl_parameterlist *parlist);
112 uves_master_stack_define_parameters(cpl_parameterlist *parlist,
const char *recipe_id);
114 uves_master_flat_define_parameters(cpl_parameterlist *parlist,
const char *recipe_id);
117 uves_exec_recipe(
int (*get_info)(cpl_pluginlist *),
118 const char *recipe_domain,
119 const cpl_parameterlist *parameters,
120 cpl_frameset *frames,
121 const char *caller_id,
const char *context);
124 uves_invoke_recipe(
const char *recipe_id,
const cpl_parameterlist *parameters,
125 cpl_frameset *frames,
126 const char *caller_id,
const char *context);
129 uves_propagate_parameters_step(
const char *step_id,
130 cpl_parameterlist *parameters,
131 const char *recipe_id,
const char *context);
134 uves_prop_par(
int (*get_info)(cpl_pluginlist *),
135 cpl_parameterlist *parameters,
136 const char *recipe_id,
const char *context);
139 uves_propagate_parameters(
const char *subrecipe_id,
140 cpl_parameterlist *parameters,
141 const char *recipe_id,
const char *context);
144 uves_corr_traps_define_parameters(cpl_parameterlist * parameters,
145 const char *recipe_id);
159 #define uves_parameter_new_value(p, name, type, description, context, default) \
161 p = cpl_parameter_new_value( \
162 name, type, description, context, default); \
163 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV); \
176 #define uves_parameter_new_range(p, name, type, description, context, \
179 p = cpl_parameter_new_range( \
180 name, type, description, context, default, min, max); \
181 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV); \
195 #define uves_parameter_new_enum(p, name, type, description, context, nopt, ...)\
197 p = cpl_parameter_new_enum( \
198 name, type, description, context, nopt, __VA_ARGS__); \
199 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV); \
216 #define uves_par_new_value(name, type, description, default) \
219 char *context = uves_sprintf("%s%s%s", recipe_id, \
220 subcontext != NULL ? "." : "", \
221 subcontext != NULL ? subcontext: "");\
222 char *full_name = uves_sprintf("%s.%s", context, name); \
223 uves_parameter_new_value(p, full_name, \
228 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, name); \
229 cpl_parameterlist_append(parameters, p); \
231 cpl_free(full_name); \
248 #define uves_par_new_range(name, type, description, default, min, max) \
251 char *context = uves_sprintf("%s%s%s", recipe_id, \
252 subcontext != NULL ? "." : "", \
253 subcontext != NULL ? subcontext: "");\
254 char *full_name = uves_sprintf("%s.%s", context, name); \
255 uves_parameter_new_range(p, full_name, \
259 default, min, max); \
260 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, name); \
261 cpl_parameterlist_append(parameters, p); \
263 cpl_free(full_name); \
280 #define uves_par_new_enum(name, type, description, default, nopt, ...) \
283 char *context = uves_sprintf("%s%s%s", recipe_id, \
284 subcontext != NULL ? "." : "", \
285 subcontext != NULL ? subcontext: "");\
286 char *full_name = uves_sprintf("%s.%s", context, name); \
287 uves_parameter_new_enum(p, full_name, \
291 default, nopt, __VA_ARGS__); \
292 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, name); \
293 cpl_parameterlist_append(parameters, p); \
295 cpl_free(full_name); \