20#ifndef HDRL_PARAMETER_H
21#define HDRL_PARAMETER_H
27typedef struct _hdrl_parameter_ hdrl_parameter;
33#include "hdrl_types.h"
34#include "hdrl_utils.h"
49#ifdef HDRL_USE_PRIVATE
56 HDRL_PARAMETER_COLLAPSE_MEAN,
57 HDRL_PARAMETER_COLLAPSE_MEDIAN,
58 HDRL_PARAMETER_COLLAPSE_WEIGHTED_MEAN,
59 HDRL_PARAMETER_COLLAPSE_SIGCLIP,
60 HDRL_PARAMETER_COLLAPSE_MINMAX,
61 HDRL_PARAMETER_COLLAPSE_MODE,
62 HDRL_PARAMETER_RECT_REGION,
63 HDRL_PARAMETER_OVERSCAN,
64 HDRL_PARAMETER_BPM_2D,
65 HDRL_PARAMETER_BPM_3D,
66 HDRL_PARAMETER_BPM_FIT,
67 HDRL_PARAMETER_LACOSMIC,
68 HDRL_PARAMETER_STREHL,
70 HDRL_PARAMETER_CATALOGUE,
71 HDRL_PARAMETER_SPECTRUM1D_RESAMPLE_INTERPOLATE,
72 HDRL_PARAMETER_SPECTRUM1D_RESAMPLE_FIT,
73 HDRL_PARAMETER_SPECTRUM1D_RESAMPLE_INTEGRATE,
74 HDRL_PARAMETER_SPECTRUM1D_SHIFT,
75 HDRL_PARAMETER_EFFICIENCY,
76 HDRL_PARAMETER_RESPONSE_TELLURIC_EVALUATION,
77 HDRL_PARAMETER_RESPONSE_FIT,
79 HDRL_PARAMETER_RESAMPLE_OUTGRID,
80 HDRL_PARAMETER_RESAMPLE_METHOD
94#define HDRL_PARAMETER_HEAD void * base
111 hdrl_parameter_enum type;
113 hdrl_alloc * fp_alloc;
118 hdrl_free * fp_destroy;
121} hdrl_parameter_typeobj;
127} hdrl_parameter_empty;
130hdrl_parameter_new(
const hdrl_parameter_typeobj * typeobj);
132const hdrl_parameter_typeobj *
133hdrl_parameter_get_type(
const hdrl_parameter * self);
136hdrl_parameter_get_parameter_enum(
const hdrl_parameter * self);
139hdrl_parameter_check_type(
const hdrl_parameter * self,
140 const hdrl_parameter_typeobj * type);
144#define HDRL_PARAMETER_SINGLETON(name, type, alloc) \
145hdrl_parameter * name = &(hdrl_parameter){ &type }; \
146static void * alloc(size_t HDRL_UNUSED(n)) \
void hdrl_parameter_destroy(hdrl_parameter *obj)
deep delete of a parameter
CPL_BEGIN_DECLS void hdrl_parameter_delete(hdrl_parameter *obj)
shallow delete of a parameter