Provided by: libxdffileio-dev_0.3-1_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)