Provided by: libxdffileio-dev_0.3-4ubuntu3_amd64 bug

NAME

       xdf_set_conf, xdf_get_conf - set or get the configuration of xDF file

SYNOPSIS

       #include <xdfio.h>

       int xdf_set_conf(struct xdf* xdf, enum xdffield field, ...);
       int xdf_get_conf(const struct xdf* xdf, enum xdffield field, ...);

DESCRIPTION

       xdf_set_conf()  sets the configuration (usually one of the field file header) of a xDF file referenced by
       xdf according to the variable list of arguments. This list is composed of successive couple grouping  one
       variable  of  type  enum  xdffield  defining  the feature to be set and a value whose type depends on the
       previous field type. The list must finish by XDF_NOF.

       xdf_get_conf() gets the configuration of the channel referenced by xdf according to the variable list  of
       argument.  The  variable list is the same list terminated by XDF_NOF as for xdf_set_conf() excepting that
       the second part of the couple is not that value but a pointer to the value.

       Both functions process the argument list from left to right.  This  means  that  if  a  particular  field
       request  provokes  an  error,  none  of  the  field requests on its right will be processed. The order of
       processing is also important for  field  requests  that  influences  the  value  of  other  fields  (like
       XDF_F_REC_NSAMPLE or XDF_F_SAMPLING_FREQ).

       The  functions  accepts  two  types  of field value. The first one are file configuration field (XDF_F_*)
       which set different aspects of the general configuration of the file. The second  type  are  the  channel
       configuration  fields  (XDF_CF_*).  When used in xdf_set_conf(), those fields set the default values that
       will be used for the creation  of  the  next  channel  (see  xdf_add_channel(3)).  The  list  of  channel
       configuration fields and their meaning are specified in the documentation of xdf_set_chconf(3).

       If  the  file  is  opened for writing, each field is initialized to sensible or non-informative values in
       case of optional field or incorrect values in the case of "must be set" field (only XDF_F_REC_NSAMPLE  or
       XDF_F_SAMPLING_FREQ). The default value are specified in squared bracked in the list.

       Here  is  the  list  of  file  configuration  field  value. The type of value expected is provided in the
       parenthesis (the expected type  of  the  value  for  xdf_set_conf(),  or  a  pointer  to  this  type  for
       xdf_get_conf()).   If  a  list  of data formats is specified in curl brackets, it means that the field is
       supported only in those formats (no list means that all formats support the field):

       XDF_F_REC_DURATION (double) [1]
              Specify the duration of one record. The value should be positive.

       XDF_F_REC_NSAMPLE (int) [0]
              Specify the number of time points contained in each record. The value should be positive.  Setting
              the number of sample per record modifies the sampling frequency (field XDF_SAMPLING_FREQ).

       XDF_F_SAMPLING_FREQ (int) [0]
              Get  or  set  the sampling frequency of the recording. Setting the sampling frequency modifies the
              number of sample per record (field XDF_F_REC_NSAMPLE).

       XDF_F_NCHANNEL (int)  (get function only)
              Get the number of channel in the file.

       XDF_F_NEVTTYPE (int)  (get function only)
              Get the number of different event types.

       XDF_F_NEVENT (int)  (get function only)
              Get the number of events.

       XDF_F_FILEFMT (int)  (get function only)
              Get the file format type (one of the value defined  by  the  enumeration  xdffiletype  other  than
              XDF_ANY)

       XDF_F_RECTIME (double) [current time] {EDF BDF GDF}
              Date  and  time  of  recording.  It  is  expressed  as  number of seconds elapsed since the Epoch,
              1970-01-01 00:00:00 +0000 (UTC). This number is the convertion to double of the value returned  by
              the function time(3) of the standard C library. On file creation, this field is initialized to the
              current time.

       XDF_F_SUBJ_DESC (const char*) [""] {EDF BDF GDF}
              Specify the string describing the subject.

       XDF_F_SESS_DESC (const char*) [""] {EDF BDF GDF}
              Specify the string describing the session of recording.

       XDF_F_ADDICTION (unsigned int) [0] {GDF}

       XDF_F_BIRTHDAY (double) [0] {GDF}
              Birthday of the patient using the same format as specified for field XDF_F_RECTIME.

       XDF_F_HEIGHT (double) [0] {GDF}
              Height of the subject in centimeters.

       XDF_F_WEIGHT (double) [0] {GDF}
              Weight of the subject in kilograms.

       XDF_F_GENDER (unsigned int) [0] {GDF}
              Sex of the subject. Use 1 for male, 2 for female and 0 if unknown.

       XDF_F_HANDNESS (unsigned int) [0] {GDF}
              Handness of the subject. Use 0 if unknown, 1 if right, 2 if left and 3 if ambidextrious.

       XDF_F_VISUAL_IMP (unsigned int) [0] {GDF}
              Visual impairment. Use 0 if unknown, 1 if no impairment, 2 if  impaired  and  3  if  impaired  but
              corrected.

       XDF_F_HEART_IMP (unsigned int) [0] {GDF}
              Heart  impairment. Use 0 if unknown, 1 if no impairment, 2 if impaired and 3 if the subject wear a
              pacemaker.

       XDF_F_LOCATION (double[3]) [0,0,0] {GDF}
              Location of the recording. The first 2 component specify the latitude and  longitude  in  degrees,
              the third specifies the altitude in meters.

       XDF_F_ICD_CLASS (char[6]) [0x000000000000] {GDF}
              Patient  classification  according to the International Statistical Classification of Diseases and
              Related Health Problems (ICD).

       XDF_F_HEADSIZE (double[3]) [0,0,0] {GDF}
              Size of the subject's head (circumference,  distance  nasion  –  inion,  left  to  right  mastoid)
              expressed in millimeters.

       XDF_F_REF_POS (double[3]) [0,0,0] {GDF}
              X, Y, Z coordinates of the reference electrode.

       XDF_F_GND_POS (double[3]) [0,0,0] {GDF}
              X, Y, Z coordinates of the ground electrode.

RETURN VALUE

       The two functions returns 0 in case of success. Otherwise -1 is returned and errno is set appropriately.

ERROR

       EINVAL xdf  is  NULL  or field is not a proper value of the enumeration xdffield accepted by the function
              (for example XDF_F_NCHANNEL and xdf_set_conf() )

       EPERM  The request submitted to xdf_set_conf() is not allowed for  this  type  of  xDF  file  or  is  not
              supported with the mode XDF_READ.

EXAMPLES

       Example of usage of xdf_set_conf() and xdf_get_conf():

              /* Assume xdfr and xdfw reference 2 XDF files opened respectively
               * for reading and for writing */
              const char *subjstr, *sessstr;

              xdf_get_conf(xdfr, XDF_F_SUBJ_DESC, &subjstr,
                                 XDF_F_SESS_DESC, &sessstr,
                                 XDF_NOF);

              printf("subject: %s\nrecording: %s\n", subjstr, sessstr);

              xdf_set_conf(xdfw, XDF_F_SUBJ_DESC, subjstr,
                                 XDF_F_SESS_DESC, sessstr,
                                 XDF_NOF);

SEE ALSO

       xdf_copy_conf(3), xdf_set_chconf(3), xdf_add_channel(3)