/*--------------------------------------------------------------------------- S E L V A R This is closely related to a crystla monochromator. A crystal monochromator can be used to select a wavelength or an energy. In Sics these three things are kept separate. The actual monochromator and its variables are dealt with in selector.*. This file contains prototypes for functions to deal with Wavelength and Energy variables. Mark Koennecke, January 1996 updated to support callbacks. Mark Koennecke, February 1998 copyright: see implementation file. ----------------------------------------------------------------------------*/ #ifndef SICSSELVAR #define SICSSELVAR typedef struct __SelVar *pSelVar; /*------------------------ birth and death --------------------------------*/ pSelVar CreateWLVar(char *name, pSicsSelector pSel); pSelVar CreateEnergy(char *name, pSicsSelector pSel); void DeleteSelVar(void *pSelf); /* ----------------------- Factory functions for initialization -----------*/ int MakeWaveLengthVar(SConnection * pCon, SicsInterp * pSics, void *pData, int argc, char *argv[]); int MakeEnergyVar(SConnection * pCon, SicsInterp * pSics, void *pData, int argc, char *argv[]); /*-------------------------------------------------------------------------*/ float GetSelValue(pSelVar self, SConnection * pCon); /*------------------------ Action functions -------------------------------*/ int WaveLengthAction(SConnection * pCon, SicsInterp * pSics, void *pData, int argc, char *argv[]); int EnergyAction(SConnection * pCon, SicsInterp * pSics, void *pData, int argc, char *argv[]); #endif