00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054 #ifndef UVES_PARAMETERS_H
00055 #define UVES_PARAMETERS_H
00056
00057
00058
00059
00060
00061 #include <uves_utils_wrappers.h>
00062
00063 #include <cpl.h>
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074 cpl_error_code
00075 uves_define_global_parameters(cpl_parameterlist *parlist);
00076
00077 int
00078 uves_exec_recipe(int (*get_info)(cpl_pluginlist *),
00079 const char *recipe_domain,
00080 const cpl_parameterlist *parameters,
00081 cpl_frameset *frames,
00082 const char *caller_id, const char *context);
00083
00084 int
00085 uves_invoke_recipe(const char *recipe_id, const cpl_parameterlist *parameters,
00086 cpl_frameset *frames,
00087 const char *caller_id, const char *context);
00088
00089 int
00090 uves_propagate_parameters_step(const char *step_id,
00091 cpl_parameterlist *parameters,
00092 const char *recipe_id, const char *context);
00093
00094 int
00095 uves_prop_par(int (*get_info)(cpl_pluginlist *),
00096 cpl_parameterlist *parameters,
00097 const char *recipe_id, const char *context);
00098
00099 int
00100 uves_propagate_parameters(const char *subrecipe_id,
00101 cpl_parameterlist *parameters,
00102 const char *recipe_id, const char *context);
00103
00104 cpl_error_code
00105 uves_corr_traps_define_parameters(cpl_parameterlist * parameters,
00106 const char *recipe_id);
00107
00108
00109
00119
00120 #define uves_parameter_new_value(p, name, type, description, context, default) \
00121 do { \
00122 p = cpl_parameter_new_value( \
00123 name, type, description, context, default); \
00124 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV); \
00125 } while(false)
00126
00127
00136
00137 #define uves_parameter_new_range(p, name, type, description, context, \
00138 default, min, max) \
00139 do { \
00140 p = cpl_parameter_new_range( \
00141 name, type, description, context, default, min, max); \
00142 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV); \
00143 } while(false)
00144
00145
00155
00156 #define uves_parameter_new_enum(p, name, type, description, context, nopt, ...)\
00157 do { \
00158 p = cpl_parameter_new_enum( \
00159 name, type, description, context, nopt, __VA_ARGS__); \
00160 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV); \
00161 } while(false)
00162
00163
00164
00165
00176
00177 #define uves_par_new_value(name, type, description, default) \
00178 do { \
00179 cpl_parameter *p; \
00180 char *context = uves_sprintf("%s%s%s", recipe_id, \
00181 subcontext != NULL ? "." : "", \
00182 subcontext != NULL ? subcontext: "");\
00183 char *full_name = uves_sprintf("%s.%s", context, name); \
00184 uves_parameter_new_value(p, full_name, \
00185 type, \
00186 description, \
00187 context, \
00188 default); \
00189 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, name); \
00190 cpl_parameterlist_append(parameters, p); \
00191 cpl_free(context); \
00192 cpl_free(full_name); \
00193 } while(false)
00194
00195
00208
00209 #define uves_par_new_range(name, type, description, default, min, max) \
00210 do { \
00211 cpl_parameter *p; \
00212 char *context = uves_sprintf("%s%s%s", recipe_id, \
00213 subcontext != NULL ? "." : "", \
00214 subcontext != NULL ? subcontext: "");\
00215 char *full_name = uves_sprintf("%s.%s", context, name); \
00216 uves_parameter_new_range(p, full_name, \
00217 type, \
00218 description, \
00219 context, \
00220 default, min, max); \
00221 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, name); \
00222 cpl_parameterlist_append(parameters, p); \
00223 cpl_free(context); \
00224 cpl_free(full_name); \
00225 } while(false)
00226
00227
00228
00240
00241 #define uves_par_new_enum(name, type, description, default, nopt, ...) \
00242 do { \
00243 cpl_parameter *p; \
00244 char *context = uves_sprintf("%s%s%s", recipe_id, \
00245 subcontext != NULL ? "." : "", \
00246 subcontext != NULL ? subcontext: "");\
00247 char *full_name = uves_sprintf("%s.%s", context, name); \
00248 uves_parameter_new_enum(p, full_name, \
00249 type, \
00250 description, \
00251 context, \
00252 default, nopt, __VA_ARGS__); \
00253 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, name); \
00254 cpl_parameterlist_append(parameters, p); \
00255 cpl_free(context); \
00256 cpl_free(full_name); \
00257 } while(false)
00258
00259 #endif