Functions
HKL_MODE_INFO_RO()
#define HKL_MODE_INFO_RO(_x, _y, _z, _emergence)
HKL_MODE_INFO()
#define HKL_MODE_INFO(_name, _axes_r, _axes_w) HKL_MODE_INFO_RO((_name), (_axes_r)), .axes_w=DARRAY((_axes_w))
HKL_MODE_INFO_RO_WITH_PARAMS()
#define HKL_MODE_INFO_RO_WITH_PARAMS(_name, _axes, _parameters) HKL_MODE_INFO_RO((_name), (_axes)), .parameters=DARRAY(_parameters)
HKL_MODE_INFO_WITH_PARAMS()
#define HKL_MODE_INFO_WITH_PARAMS(_name, _axes_r, _axes_w, _parameters)
HKL_ENGINE_INFO()
#define HKL_ENGINE_INFO(_name, _pseudo_axes, _dependencies)
g_quark_from_static_string ()
return
g_quark_from_static_string ();
darray_item ()
return
darray_item ();
Types and Values
struct HklModeOperations
struct HklModeOperations {
unsigned long capabilities;
void (* free)(HklMode *self);
int (* initialized_get)(const HklMode *self);
int (* initialized_set)(HklMode *self,
HklEngine *engine,
HklGeometry *geometry,
HklDetector *detector,
HklSample *sample,
int initialized,
GError **error);
int (* get)(HklMode *self,
HklEngine *engine,
HklGeometry *geometry,
HklDetector *detector,
HklSample *sample,
GError **error);
int (* set)(HklMode *self,
HklEngine *engine,
HklGeometry *geometry,
HklDetector *detector,
HklSample *sample,
GError **error);
};
HKL_MODE_OPERATIONS_DEFAULTS
#define HKL_MODE_OPERATIONS_DEFAULTS
struct HklMode
struct HklMode {
const HklModeInfo *info;
const HklModeOperations *ops;
darray_parameter parameters;
darray_string parameters_names;
int initialized;
};
self
HklModeAutoWithInit *self = container_of(mode, HklModeAutoWithInit, mode);
struct HklEngineInfo
struct HklEngineInfo {
const char *name;
const darray(const HklParameter *) pseudo_axes;
unsigned int dependencies;
};
HklEngine
typedef struct {
const HklEngineInfo *info;
const HklEngineOperations *ops;
HklGeometry *geometry;
HklDetector *detector;
HklSample *sample;
HklMode *mode; /* not owned */
HklEngineList *engines; /* not owned */
darray_parameter axes;
darray_parameter pseudo_axes;
darray_string pseudo_axis_names;
darray_mode modes;
darray_string mode_names;
} HklEngine;
HklEngineList
typedef struct {
_darray(HklEngine *);
HklGeometryList *geometries;
HklGeometry *geometry;
HklDetector *detector;
HklSample *sample;
darray_parameter pseudo_axes;
} HklEngineList;
HKL_ENGINE_ERROR
#define HKL_ENGINE_ERROR hkl_engine_error_quark ()
struct HklEngineOperations
struct HklEngineOperations {
void (*free)(HklEngine *self);
};
HKL_ENGINE_OPERATIONS_DEFAULTS
#define HKL_ENGINE_OPERATIONS_DEFAULTS .free=hkl_engine_free_real
axis
HklParameter *axis = hkl_geometry_get_axis_by_name(self->geometry,
HKL_ENGINE_LIST_ERROR
#define HKL_ENGINE_LIST_ERROR hkl_engine_list_error_quark ()